Excel VBA質問スレ Pa ..
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