Excelファイルを開いたときにメニューをカスタマイズする方法をご紹介しました。
似たようなニーズですが、ブックを開いたときではなく、特定のブックがアクティブなときだけメニューをカスタマイズしたいという要望も、よくいただくものの一つです。
Workbook_Activateイベントプロシージャでメニューをカスタマイズし、
Workbook_Deactivateイベントプロシージャでメニューを元に戻す
メニューをカスタマイズするコードを記述するイベントプロシージャが違うだけです。
ブックがアクティブになるときのWorkbook_Activateイベントプロシージャと、アクティブでなくなるときのWorkbook_Deactivateイベントプロシージャにコードを記述します。
▼サンプルファイル(002970.xls 41KByte)ダウンロード
サンプルファイルの、ThisWorkbookモジュールのWorkbook_Activateイベントプロシージャには、メニューをカスタマイズするCustomizeMenuBarマクロを呼ぶコードが、Workbook_Deactivateイベントプロシージャには、メニューを元に戻すResetMenuBarマクロを呼ぶコードが書いてあります。
メニューバーをカスタマイズするCustomizeMenuBarマクロと、メニューバーを元に戻すResetMenuBarマクロは、既にご紹介したものと同様のもので、標準モジュールに記述してあります。
- Newer:×打ち消し線、○取り消し線
- Older:文字列をドラッグアンドドロップで移動できない
Home » エクセルマクロ・Excel VBAの使い方 » イベントプロシージャ » 特定のブックがアクティブなときだけメニューがカスタマイズされるように