Excel VBA質問スレ Pa ..
[2ch|▼Menu]
415:デフォルトの名無しさん
08/01/18 19:41:23
Worksheet_Changeで対応できない書式の変更にリアルタイム反応するためユーザーが入力した書式などをリアルタイム監視するプログラムを作成したところ、終了条件の問題に突き当たり処理に悩んでます。

'-----------------------------

Private EndFlg As Boolean

Sub Worksheets_Activate
EndFlg = False
Call 監視処理
End Sub

Sub Worksheets_Deactivate
EndFlg = True
End Sub

Sub 監視処理
Do
(処理)
DoEvents
Loop Until EndFlg = True
End Sub

'------------------------------

このようなものが、ほとんどのワークシートに書いてある状態です。
Loop Until EndFlg = True の直後にメッセージボックスを設け確認したところ、Worksheet_Activateのあるシートに移動するとその場では終了せず、Activateのないシートに移動した瞬間に終了します。
たとえばActivateのあるシートA、BとActivateのないシートCがある場合
A→C、B→Cは正常な終了が確認できるのですが
A→B、B→Aは終了メッセージが出ません。
A→B→A…を延々繰り返したあとにCを選択すると、終了メッセージがA⇔Bした回数に比例して複数出るため多重起動であると断定できました。

Activateのないシートをはさまずに開放する方法ありませんでしょうか。


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4802日前に更新/253 KB
担当:undef