- 締切済み
VBSとエクセルVBAの連携
一定の処理を自動化したいと考えております 以下が現在の構成 main.vbs メインの処理を実行 Master.xls (Macro1) マクロを記述してあるエクセル A.xls マクロを実行したいエクセル 現状はmain.vbsの処理を終了後に手動でアクティブウィンドウをA.xlsにしてMacro1を実行しています。 (エクセルファイルは両方開きっぱなしです) これをmain.vbsの処理の中に組み込み main.vbsの処理終了後に自動的に実行するようにしたいと考えています。 1.既に開いてあるエクセルファイルをアクティブにする処理が分かりません。 2.アクティブなエクセルファイルから別のエクセルファイルのマクロを実行する方法がわかりません。 初心者の質問で理解に苦しむかと思われますがご教授よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- SHIMAPEE
- ベストアンサー率75% (154/203)
このままでは目的のことはできないと思いますが、個々の回答は例えば下記です。マクロを記述してあるエクセルを開いておく必要はないでしょう。 アクティブにしたA.xlsに対してMacro1が確実に実行されるための工夫が必要です。 ----- '既に開いているエクセルをアクティブにする Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.AppActivate "A.xls" WScript.Sleep 3000 'エクセルのマクロを実行する(エクセルは閉じておく) Set objExcel = CreateObject("Excel.Application") 'objExcel.Visible = True objExcel.Workbooks.Open "C:\Master.xls" objExcel.Application.Run "Master.xls!Macro1" objExcel.Quit -----
お礼
早速の回答ありがとうございます。 WshShellを使って考えていこうかと思います