- ベストアンサー
アプリケーションのイベント(エクセルVBA)
エクセルを起動した時に、自動的にマクロを起動したいと思っています。どの、ブックを開いても同じマクロが起動させる(別のパソコンで同じファイルを起動した場合は、起動しなくても構いません。)には、アプリケーションのイベントを使う必要があると考え、クラスモジュールを使ってアプリケーションのイベントプロシージャを作ることは、本を読んで何とか理解しました。 -------clasモジュール-------- Public WithEvents App As Application Private Sub App_SheetBeforeRightClick(省略・・) 処理したい内容 Cancel = True end sub -------標準モジュール-------- Sub SetAppEvent() Set myclass.App = Application End Sub と書いて、SetAppEventを実行すると、以降右クリックでイベントが発せいしました。しかし、初めてエクセルを起動した時に一々SetAppEventを実行する必要があります。何か?いい方法は無いでしょうか?ご指導のほど宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 Personal.xls (個人用マクロブック)に、それらは登録しているはずですが、 '標準モジュールに Sub Auto_Open() Call SetAppEvent End Sub と入れてください。 ThisWorkbook に入れない理由は、インスタンスは、必ず、ブックを起動したときのみに、発生させるようにしないといけないと思うからです。オートメーション・オブジェクトで発生してもよければ、ThisWorkbook_Openにしますが、私は、そのような設定は、思わぬトラブルが発生することがあるので、そのような方式を取りません。私は、そのように設定しています。 逆に、アドインの時は、ThisWorkbook に入れます。 一度、試してみてください。
その他の回答 (1)
- taocat
- ベストアンサー率61% (191/310)
こんばんは。 >どのブックを開いても同じマクロが起動させる であれば、その「同じマクロ」を、 個人用マクロブック( PERSONAL.XLS )のWorkBook_Openイベントに書いたらどうですか? またはPERSONAL.XLSの標準モジュールに書いて、 PERSONAL.XLSのWorkBook_OpenイベントからCall 外してましたらご容赦!(^^; 以上です。
お礼
こんばんわ!!ご指導の通りにやってみると出来ました。本当に有難う御座いました。