マクロで開いて AutoOpen

マクロでファイルを開いたのに、AutoOpen が実行されました。
勿論、明示的に AutoOpen を実行させるコードなんて書いていないのに…
こんなことってあり?
 
クイズというよりも、単なるひっかけ問題といった方が適切かも。(-_-;)
 
 
 
 
 
 
 
 
 
 
答えは・・・。
Excelでは、標準モジュールに Auto_Open という名前のプロシージャあると、ファイルが開かれたときにこのAuto_Openが実行される。しかし、プログラムからファイルを開いたときは、Auto_Openは実行されない。」という知識があることを前提としてしています。でも、わざとこれを最初に書きませんでした。

何故か?
Auto_Open ではなく、AutoOpen と書いたのも間違いではありません。
Excel ではなく、Word のマクロだったんですね。これは。
Word のファイル起動時の自動実行プロシージャは、AutoOpen なんです。
そして、少なくとも、Word2003 では AutoOpen はマクロで文書が開かれた場合にも走ります。
 
『Word の標準モジュールに AutoOpen を書いていた』が正解でした。
 
一応、サンプルコードをば。

Excel

Sub Macro1()
  Dim wdApp As Word.Application
  Dim wdDoc As Word.Document
  Const cDocName = "D:\文書1.doc"

  Set wdApp = New Word.Application
  wdApp.Visible = True
  Set wdDoc = wdApp.Documents.Open(Filename:=cDocName _
                  , ReadOnly:=True)
  wdDoc.Close
  wdApp.Quit
End Sub

◆Word側『D:\文書1.doc』

Sub AutoOpen()
  MsgBox "AutoOpen", vbInformation
End Sub

 
※.Excel World の 2006年8月20日 00:00 の日記をコピーしています。
http://excel.sns.fc2.com/excel/