
教えてください。
表示を他ブックに切り替えるとイベント無効にし
元々表示させていたブックに戻るとイベント有効にしたいのですが
どのようにすれば良いでしょうか?
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) excelvbaのenableeventsについて 3 2022/08/30 11:20
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) VBA Bookの表示、非表示 1 2022/09/16 20:44
- その他(Microsoft Office) Excelのマクロについて教えてください。 1 2022/03/25 10:03
- Excel(エクセル) vba あるブックから新たにブックを起動したときディスプレイ上で並べて表示 1 2023/08/08 08:39
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/08 15:45
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/03/25 08:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
エクセルを共有するとPCによっ...
-
Excelで複数ブックの同一セルに...
-
Excelで指定範囲のデータ...
-
ブックのピボットを別ブックに...
-
vbaでpdfを開いて1ページ目のみ...
-
Excel VBAでブックを閉じる時、...
-
Excel(2010)のフィルターが保...
-
エクセルで参照しているデータ...
-
Excel 仮装読取専用ブックの削除
-
シェアウェアのような使用期限...
-
VBA バックグラウンドで別ブッ...
-
エクセルでメール送信
-
VBA初心者で勉強中です。 ご教...
-
Excelファイルをダブルクリック...
-
【マクロ】アクティブセルの時...
-
WorkBooksをオープンさせずにシ...
-
参照したいブックのパス名に"["
-
EXCELでVLOOKUPの範囲の編集が...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】アクティブセルの時...
-
Excelの新しい空白のブックを開...
-
VBAでブックを非表示で開いて処...
-
エクセルの関数 ENTERを押...
-
エクセルを共有するとPCによっ...
-
Excelファイルをダブルクリック...
-
WorkBooksをオープンさせずにシ...
-
Excelでブックの共有を掛けると...
-
エクセルで参照しているデータ...
-
Excel(2010)のフィルターが保...
-
Excelの警告について
-
Excelで複数ブックの同一セルに...
-
フォルダ内の複数ファイルから...
-
同じフォルダへのハイパーリン...
-
エクセルにおける,「ブック」...
-
別ブックから入力規則でリスト...
-
エクセルで別ブックをバックグ...
-
エクセルでウィンドウの枠固定...
-
エクセルファイルを開かずにpdf...
-
「ブックの共有」を有効にして...
おすすめ情報