0

ワークブックを開き、対応するマクロを実行するコードを以下に示します。このスクリプトを Excel で実行すると問題なく動作しますが、同じコードで .vbs ファイルを実行してもマクロは実行されません。ファイルをダブルクリックして、「cscript.exe LaunchMacro.vbs」を使用してcmdプロンプトから実行しようとしました。さらに、WScript.Echo を使用してもコマンド ラインに出力されません。ここで何か不足していますか?

ありがとうございました!


Option Explicit

Sub LaunchMacro()
Dim xlApp, xlBook    
Dim oShell: Set oShell = CreateObject("WScript.Shell")    
oShell.CurrentDirectory = "H:"   
Set xlApp = CreateObject("Excel.Application")    
xlApp.Visible = True   
xlApp.Application.Visible = False

Set xlBook = xlApp.Workbooks.Open("H:\SW Tool Resources\test\tester.xlsm")
MsgBox ("File Opened")
xlApp.DisplayAlerts = False
xlApp.Application.Run ("tester.xlsm!Module3.split")
MsgBox ("Application Should Have Run")
xlBook.Saved = True
xlApp.Quit

Set xlBook = Nothing
Set xlApp = Nothing

End Sub
4

1 に答える 1

1

VBSとVBAは違います。

次のコードのみを vbs ファイルに入れて実行してみてください。

Set xlApp = CreateObject("Excel.Application")    
xlApp.Visible = True   
xlApp.Application.Visible = False

Set xlBook = xlApp.Workbooks.Open("H:\SW Tool Resources\test\tester.xlsm")
MsgBox ("File Opened")
xlApp.DisplayAlerts = False
xlApp.Application.Run ("tester.xlsm!Module3.split")
MsgBox ("Application Should Have Run")
xlBook.Saved = True
xlApp.Quit

私はそれをテストしなかったので、成功しない可能性が非常に高いです。しかし、それはそれを正しい方向に向けるべきです。

編集:

VBS を使い始めるのに役立つ情報を次に示します。スクリプトはいくつかの関数を定義できますが、呼び出した場合にのみ実行されます。

たとえば、これは次のようにのみ実行されますSub1

Sub Sub1()
  MsgBox "1"
End Sub
Sub Sub2()
  MsgBox "2"
End Sub
Sub1
于 2013-06-28T16:46:09.227 に答える