- 締切済み
xltから開いたファイルのマクロを実行したい
"a.xls"のマクロから"b.xlt"のファイルを開くと"b1"(拡張子無し)の ファイルが開きますよね。 "b.xlt"にはauto_openのマクロが入っているのですが、この開き方では、 auto_openが実行されません。 そこで "Application.Run "b!auto_open" としてみても "Application.Run "b.xls!auto_open"としてみても、auto_openは実行されません。 一度保存しないと、xltから開いたファイルのマクロを走らせる事は不可能でしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- real beatin(@realbeatin)
- ベストアンサー率82% (174/211)
こんにちは。 ブックの名前や保存の有無に係りなく、 workbook オブジェクトとして捉えることさえ出来れば、 workbook.RunAutoMacros メソッドが使えます。 ' ' /// With Workbooks.Add(Template:="C:\Users\ユーザー名\AppData\Roaming\Microsoft\Templates\テンプレートブック名.xlt") .RunAutoMacros Which:=xlAutoOpen End With ' ' /// #2様、ご指摘のように、テンプレートブックの Workbook_Open イベントを用いれば、workbooks.Add するだけで、 実行させることは可能ですが、 タイミングとして、Workbook_Open の後にCallされる Auto_Open でなければ、 ならない処理も中にはありますので、.RunAutoMacros メソッドの方が、 汎用性が高いのかも知れません。 どちらを簡素・簡易と感じるかは個人差があると思いますが、 .RunAutoMacros メソッドなら余計な心配しなくて済むのかなぁ、と。