Excel VBA(マクロ)でイベントプロシージャ用のWorkbook/Worksheetが表示されない、表示したい人用の説明

IT

イベントプロシージャを実行するにあたって、説明を見ると左上でWorkbookまたはWorksheetを表示してからイベントを選ぶ……となっているはずですが、標準モジュールから開こうとすると何も表示されず、手動でプロシージャ名を変更してもイベントは発生しません。
このへんについての説明です。

スポンサーリンク

イベントプロシージャ用のWorkbook/Worksheetの表示

workbookopen1
まず用語として、いつものコードのSubからEnd Subまでがプロシージャ、プロシージャがまとめて入ってるウィンドウ単位のプログラムの集合がモジュールです。
一般的な(実行してセル操作などの)VBAで使用するモジュールは標準モジュールと呼ばれますが、モジュールには他にもいくつか種類があります。
標準モジュールの場合、左上のここを開いてもGeneral以外表示されません。
workbookopen2
表示→プロジェクトエクスプローラーを開き、開かれているモノを確認すると、
workbookopen9
標準モジュール配下のModule〇〇を開いているはずです。
workbookopen3
同じVBA Project内の上に行くと、Microsoft Excel Objectsという集合があるはずですが、これもモジュールの一種です。
workbookopen4
イベントプロシージャでWorkbookに対してイベントを実行したい場合、Microsoft Excel Objects配下のThisWorkbookをダブルクリックし、
workbookopen5
コード画面左上からWorkbookを選択して、
workbookopen6
好きなイベントを選択すれば、プロシージャ名が自動で入力されます。
workbookopen7
シートの場合はイベントを実行したいシートをダブルクリックします(どのシートでも実行されるイベントもあります)。
workbookopen8
左上からWorksheetを選択し、イベントを指定すればプロシージャ名が自動で入力されます。
やりたいことから方法を探すエクセル(Excel)操作・関数・VBA(マクロ)逆引きまとめ
逆引き(やりたいことから探す)Excel記事まとめ

コメント