概略を書くとCreateObjectでExcel.Application のオブジェクトを作成し、そのオブジェクトのメソッドWorkbooks.Openにて対象のExcelファイルを開き、RunAutoMacros xlAutoOpenでAuto_Open()マクロを実行するというもの。
createObjectでExcelオブジェクトを開くと、非表示モードになるのでSDIとか画面が変わっていても影響しないようです。
簡単なサンプルは以下のとおりです。
Dim o As Object Set o = CreateObject("Excel.Application") With o .WorkBooks.Open("エクセルファイル").RunAutoMacros xlAutoOpen .Quit End With Set o = Nothingいやシンプルな対応ができて嬉しいことです。
しかしながら、これでは一部問題があります。Excelが複数バージョンインストールされた環境だと、最後にインストールされたExcelで処理がなされます。
Excel.Application.Version とバージョンを指定すれば指定可能とのレポートがありますが、筆者の環境ではうまく行きませんでした。
このあたりは、少々苦労しましたが対処方法がありました。そちらについては今後アップします。
上記では問題があることがわかりました。Excel2013でWorkbooks.Openを最小化表示するにはの方法で対処できるのでそちらを参照してください。
0 コメント:
コメントを投稿