• ベストアンサー

Excel VBA 標準モジュール内でイベント

ワークブックのイベントWorkbook_Openを標準モジュールのAuto_Openで代用できるように ワークシートのイベントWorksheet_Changeを標準モジュールで実行できるようにすることは できなものでしょうか。 その他のイベントに関しても情報があれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

>ワークシートのイベントWorksheet_Changeを標準モジュールで実行できるようにすることは できなものでしょうか。 質問の意味が良く分かりませんね。どのオブジェクトに対して、イベントを設けたいのですか? 標準モジュールは、直接のオブジェクトを持っていません。だから、一般的に、標準モジュールからイベントは設けられません。イベントは、基本的にインスタンスです。 >Workbook_Openを標準モジュールのAuto_Open もちろん、他のイベントも、同様に残っています。Auto_Openは時代の古いものです。ですから、古い書き方の"OnEntry"など、いわゆるオートマチック・イベントは、未だ、残っていますが、古いExcelバージョンでもなければ、もはや使いません。しかし、いずれにしても、シートオブジェクトは指定しなくてはなりません。 何をしたいのですか?同じブック内なら、ThisWorkbookモジュールに Private Sub Workbook_SheetChange を、書けば済みます。それ以外のことをしたいのですか?

Excel-VBA
質問者

お礼

単にWokboookやWorksheetには、記述しないほうがわかりやすいような気がしました。 Auto_Openは時代の古いものです。 勉強になりました。ありがとうございました。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

標準的にはありませんが,たとえば下記のようなMacro1を事前に実行しておくことで代行はできます。 sub macro1() activeworkbook.worksheets("Sheet1").onentry = "Macro2" end sub sub macro2() msgbox "Enter" end sub その他のイベント類似の命令として,onkeyなども稀に出てきますね。

Excel-VBA
質問者

お礼

onentry, onkey 勉強します。ありがとうございました。

関連するQ&A