私は非常に奇妙な状況にいます。Excel ファイルを開く vbs スクリプトを作成しました。WorkBook_open メソッドで vba コードを定義しました。Excel を開く vbs スクリプトを作成すると、workBook_open メソッドが呼び出され、その中で vba コードが実行されると思いました。しかし、私は間違っていました。以下は私のvbsコードです。
filePath = "E:\data_extracts\mydata.xlsm"
Set oExcel = CreateObject("Excel.Application")
oExcel.Workbooks.Open(filepath)
oExcel.Visible = True
oExcel.Run "RefreshDataFromIQY"
oExcel.ActiveWorkbook.Save
oExcel.ActiveWorkbook.Close
oExcel.Quit
Set oExcel = Nothing
デバッグ時に、oExcel.Run "RefreshDataFromIQY" で失敗し、マクロが利用できないか無効になっていると表示されます。したがって、コードはExcelアプリケーションを正常に開くだけであり、それだけです。module1、module2 にマクロ コードがあります。以下のvbsスクリプトでマクロを実行するには、どのように/どこに書くのですか。マクロ/モジュールは順番に実行する必要があり、一部のマクロは記録されたマクロです。どんな助けでも大歓迎です。ありがとう。
スコットさん、ご意見ありがとうございます。コードに変更を加えたものは次のとおりです
Dim oExcelApp
Dim oExcelWkb
set oExcelApp = createobject("Excel.Application")
set oExcelWkb = oExcelApp.Workbooks.Open("\\myserver\data_extracts\TestTOPTMay307.xlsm")
oExcelWkb.Close True
oExcelApp.Quit
ただし、コマンドラインから実行すると、実行時エラー Object required: 'Close' が表示されます。理由はありますか?クローズに失敗するのはなぜですか? 私は何を間違っていますか?ありがとう。