アプリ版:「スタンプのみでお礼する」機能のリリースについて

一定の処理を自動化したいと考えております

以下が現在の構成
main.vbs       メインの処理を実行
Master.xls (Macro1) マクロを記述してあるエクセル
A.xls マクロを実行したいエクセル
現状はmain.vbsの処理を終了後に手動でアクティブウィンドウをA.xlsにしてMacro1を実行しています。
(エクセルファイルは両方開きっぱなしです)

これをmain.vbsの処理の中に組み込み
main.vbsの処理終了後に自動的に実行するようにしたいと考えています。

1.既に開いてあるエクセルファイルをアクティブにする処理が分かりません。

2.アクティブなエクセルファイルから別のエクセルファイルのマクロを実行する方法がわかりません。

初心者の質問で理解に苦しむかと思われますがご教授よろしくお願いいたします。

A 回答 (1件)

このままでは目的のことはできないと思いますが、個々の回答は例えば下記です。

マクロを記述してあるエクセルを開いておく必要はないでしょう。

アクティブにした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
-----
    • good
    • 1
この回答へのお礼

早速の回答ありがとうございます。

WshShellを使って考えていこうかと思います

お礼日時:2007/05/26 00:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!