- ベストアンサー
Excel VBA 標準モジュール内でイベント
ワークブックのイベントWorkbook_Openを標準モジュールのAuto_Openで代用できるように ワークシートのイベントWorksheet_Changeを標準モジュールで実行できるようにすることは できなものでしょうか。 その他のイベントに関しても情報があれば教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>ワークシートのイベントWorksheet_Changeを標準モジュールで実行できるようにすることは できなものでしょうか。 質問の意味が良く分かりませんね。どのオブジェクトに対して、イベントを設けたいのですか? 標準モジュールは、直接のオブジェクトを持っていません。だから、一般的に、標準モジュールからイベントは設けられません。イベントは、基本的にインスタンスです。 >Workbook_Openを標準モジュールのAuto_Open もちろん、他のイベントも、同様に残っています。Auto_Openは時代の古いものです。ですから、古い書き方の"OnEntry"など、いわゆるオートマチック・イベントは、未だ、残っていますが、古いExcelバージョンでもなければ、もはや使いません。しかし、いずれにしても、シートオブジェクトは指定しなくてはなりません。 何をしたいのですか?同じブック内なら、ThisWorkbookモジュールに Private Sub Workbook_SheetChange を、書けば済みます。それ以外のことをしたいのですか?
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
標準的にはありませんが,たとえば下記のようなMacro1を事前に実行しておくことで代行はできます。 sub macro1() activeworkbook.worksheets("Sheet1").onentry = "Macro2" end sub sub macro2() msgbox "Enter" end sub その他のイベント類似の命令として,onkeyなども稀に出てきますね。
お礼
onentry, onkey 勉強します。ありがとうございました。
お礼
単にWokboookやWorksheetには、記述しないほうがわかりやすいような気がしました。 Auto_Openは時代の古いものです。 勉強になりました。ありがとうございました。