
教えてください。
表示を他ブックに切り替えるとイベント無効にし
元々表示させていたブックに戻るとイベント有効にしたいのですが
どのようにすれば良いでしょうか?
Private Sub Workbook_Deactivate()
Application.EnableEvents = False
End Sub
Private Sub Workbook_Activate()
Application.EnableEvents = True
End Sub
元々のブックに上記入れると、
他ブックに切り替え時はイベントが無効になるのですが
元々表示させていたブックに戻ってもイベントが有効になりません。
ご教示お願いいたします。
No.1ベストアンサー
- 回答日時:
おはようございます。
他に、どの様なイベントを使っているでしょうか?
下記で、一旦イベントを無効にしてしまうと、
Private Sub Workbook_Deactivate()
Application.EnableEvents = False
End Sub
その次の、Workbook_Activateのイベント自体が発生しなくなります。
Private Sub Workbook_Activate()
Application.EnableEvents = True
End Sub
例としては、何かの変数を宣言して、その変数で処理を分岐させる。
Public myFlag As Boolean
Private Sub Workbook_Open()
myFlag = True’変数の初期値 Trueでイベントを有効の意味
End Sub
Private Sub Workbook_Deactivate()
myFlag = False ’Falseでイベントを無効の意味
End Sub
Private Sub Workbook_Activate()
myFlag = True ’Trueでイベントを有効の意味
End Sub
’イベント自体は発生するが、処理の一番最初に変数で分岐させ、Falseなら
何も処理せずに抜ける = イベント無効と同じ様な処理が可能です。
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If myFlag = False Then Exit Sub ’Falseなので、何も処理せずに抜ける。
'処理~
End Sub
その他のイベントでは、myFlagの内容を確認し、Falseなら、Exit Subなど
で抜ける様にするなどにすれば、対応可能かと思います。
回答ありがとうございます。
イベントばかり気にしていましたが、こんなこともできるのですね。
とても勉強になりました。
ありがとうございした。
No.2
- 回答日時:
こんにちは。
手元に環境がないので未確認ですが。
イベントを無効ではなく、イベントプロシージャの冒頭でアクティブなブックが、VBAを記載したブックなのかチェックして、違ったら即終了されるとか。
If Not ActiveWorkbook is ThisWorkbook Then Exit Sub
IS演算子で比較出来ないようなら、
If ActiveWorkbook.Name <> ThisWorkbook.Name Then Exit Sub
とか。
Application.EnableEvents
はエラートラップをしっかり、他ブックへの影響を考慮しないとダメだった様に記憶してます。
Thisworkbook について調べてみて。
回答ありがとうございます。
ブック切り替え時にイベントを無効にしていたのが大失敗でした。
まだまだ勉強が必要です。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの関数 ENTERを押...
-
VBAマクロで作成した新規ブック...
-
WorkBooksをオープンさせずにシ...
-
【マクロ】【画像あり】❶ブック...
-
エクセルでSheetの数は最大限ど...
-
エクセルを開くと最大化などの...
-
複数ファイルから特定シートの...
-
Excel VBA セルと同じ名前のブ...
-
エクセルで開いていないbookの...
-
ワードやエクセルで「時間が来...
-
ワークシートの構成を確認する...
-
Excel 2013 の[最近使ったブッ...
-
Excel VBAでブックを閉じる時、...
-
ブックのピボットを別ブックに...
-
【マクロ】【画像あり】ファイ...
-
エクセルにおける,「ブック」...
-
データのリンク元を一部だけ変...
-
祭の祝儀 掲示・集計ソフト
-
1ヶ月分の日付を一度に出す方法...
-
Nintendo Switch 2 キャリング...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルを共有するとPCによっ...
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
【マクロ】【画像あり】ファイ...
-
【マクロ】【画像あり】❶ブック...
-
Excelファイルをダブルクリック...
-
エクセルで参照しているデータ...
-
WorkBooksをオープンさせずにシ...
-
フォルダ内の複数ファイルから...
-
Excel(2010)のフィルターが保...
-
複数ファイルから特定シートの...
-
エクセルでウィンドウの枠固定...
-
Excelで複数ブックの同一セルに...
-
同じフォルダへのハイパーリン...
-
エクセルを開くと最大化などの...
-
ブックのピボットを別ブックに...
-
vbaでpdfを開いて1ページ目のみ...
-
Excelでブックの共有を掛けると...
-
指定ファィルの指定シートをシ...
-
エクセルにおける,「ブック」...
おすすめ情報