Auto_Open の引数
自動実行プロシージャである Auto_Open に Optional を使えば引数を渡すことができます。マクロから実行したときに限りますが。
勿論、自動実行プロシージャの機能は持ったままです。
以下、実験
Book2.xls の Module1 に↓のコードを書いておきます。
Sub Auto_Open(Optional Arg As Variant) If IsMissing(Arg) Then MsgBox "引数は渡されなかった。" _ , vbInformation, "Auto_Open" Else MsgBox "引数 " & Arg & " が渡された。" _ , vbInformation, "Auto_Open" End If End Sub
この Auto_Open は、Book2.xls を手動で開いたときに実行されます。
勿論、"引数は渡されなかった。"の方のメッセージが出ます。
そして、
Sub Macro0() Const cFName = "D:\Book2.xls" Workbooks.Open Filename:=cFName Application.Run Macro:=Dir(cFName) & "!Module1.Auto_Open" _ , Arg1:="TEST" End Sub
というマクロで、Book2.xls を開いて、Auto_Open を実行させると…
書いたとおりのことが実行されます。
実用性は、、、全然ないですね。(-_-;)
※.Excel World の 2006年8月21日 01:56 の日記をコピーしています。
http://excel.sns.fc2.com/excel/