マクロで開いて 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/