2017-06-08 31 views
1

Excelマクロを実行するVBScriptコードを作成しようとしています。VBSでExcelのマクロ引数を実行しないでください。

私のVBAコード:

Sub MyMacro(Name As String) 

    'do something 

End Sub 

私のVBScriptコード:

Set objExcel = CreateObject("Excel.Application") 

objExcel.Application.Run "'C:\MyFile.xlsm'!MyMacro", "MyName"  

objExcel.Application.Quit 

Set objExcel = Nothing 

私が取得エラー:私は引数を渡す行う場合、私はこのエラーを取得してくるどのよう

Compile error: Argument not optional

? 私は何が間違っていますか?

ありがとうございます!

+0

を参照してくださいあなたは、あなたがそれを実行する前に、VBScriptとエクセルファイルを保存しましたか? 'Argument not optional'は、マクロが必要な引数を渡さなかったことを意味します。あなたが投稿したコードは正しいです(私はそれをテストしました)、問題なく実行されます。コードがここに投稿されたものとまったく同じであり、実行前にすべてのファイルが保存されていることを確認してください。 –

答えて

0

マクロが存在するモジュールを指定する必要があります。

"'C:\MyFile.xlsm'.Module1.MyMacro" 

次のリンクを明示的にマクロは、ExcelでVBAモジュールに存在する必要があります言っていないが、私はそれをしなければならないと信じています。

のコード例here

+1

ファイル名の後に '! 'ではなく'!'をつけて '' 'C:\ MyFile.xlsm'!Module1.MyMacro "'にする必要があります。しかしそれは問題ではない。 'MyMacro'が' Private'でなければ、 '''C:\ MyFile.xlsm '!MyMacroはうまく動作し、モジュールを指定する必要はありません。 –

関連する問題