VBAでマクロを作成し、業務アプリケーションというべきレベルのものを作成しはじめた方から、よくいただく質問があります。
「ブックを開いたときに必ずやりたい処理があるときはどうすればいいですか?」
「ファイルを開いたときにマクロを実行させるにはどうすればいいのでしょう?」
といったご質問です。
AUTO_OPENという名前のSubプロシージャはブックを開くときに実行される
知ってしまうと簡単なことなのですが、ある特別な名前をプロシージャ名にすると、そのマクロはファイルが開かれるときに必ず実行されるようになります。※ファイルを開いたときに、「AUTO_OPENマクロによって表示されたメッセージです。」というメッセージを表示させる例
Sub AUTO_OPEN()
MsgBox "AUTO_OPENマクロによって表示されたメッセージです。"
End Sub
これだけでこのマクロはブックを開いたときに自動的に実行されます。
「AUTO_OPEN」は大文字小文字は関係ありませんので、「Auto_Open」「auto_open」などとしても構いません。
AUTO_OPENをマクロダイアログに表示したくない場合
上記のように、
Sub AUTO_OPEN()
としただけでは、メニュー[ツール]−[マクロ]−[マクロ]をクリックして表示される、[マクロ]ダイアログに「AUTO_OPEN」マクロが表示されます。
もしもこれを表示させたくないのであれば、「Private」キーワードを使って
Private Sub AUTO_OPEN()
としてください。
ちなみにAccessでも同様に、「MDBファイルを開く時に何らかの処理をするには?」というご質問をいただくことがありますが、その場合は「AutoExec」という名前のマクロを作成するか、[起動時の設定]ダイアログで設定をしてください。
最終更新日時:2019-02-15 09:59
Home » エクセルマクロ・Excel VBAの使い方 » イベントプロシージャ » .xlsファイルを開いたときにマクロを実行−AUTO_OPENマクロ