2016-09-19 25 views
0

基本的にExcelでマクロを実行し、Excelを保存するVBスクリプト(myVB2.vbs)があります。 は、ここに私のVBスクリプト複数のパラメータをJavaから.vbsファイルに渡す方法

Dim objExcel, objWorkbook, filePath 

Set filePath = Wscript.Arguments(0) 
Set objExcel = CreateObject("Excel.Application") 
'Set objWorkbook = objExcel.Workbooks.Open("C:\Writter\Excel.xlsm") 
Set objWorkbook = objExcel.Workbooks.Open(filePath) 
objExcel.Visible = True 
objExcel.Run "ChartUpdate" 
objWorkbook.Save 
objExcel.Quit 

Set objWorkbook = Nothing 
Set objExcel = Nothing 

WScript.Quit 

は今、私はVBスクリプトにExcelファイルパスの引数を渡すことで、これは、Javaからファイルをトリガーの.vbsする必要があります(myVB2.vbs)です。 Javaコードの下に、ファイルパスの引数を渡すことができません。エラーが表示されます。ファイル拡張子 ".xlsm"のスクリプトエンジンはありません。代わりに.exec

public static void main(String[] args) throws IOException { 
    String scriptpath = System.getProperty("user.dir") + "\\src\\com\\domain\\function\\resources\\myVB2.vbs"; 
    String destinationlocation ="C:\\Writter\\Excel.xlsm" ; 

     Runtime rt = Runtime.getRuntime(); 
      try { 
       Runtime.getRuntime().exec("wscript"+ scriptpath+" "+destinationlocation); 
      } 
      catch(IOException e) { 
       e.printStackTrace(); 
      } 

    } 
+1

'String'の中にスペースが必要なように見えますか? 'Runtime.getRuntimee()を試してください。exec(" wscript "+ scriptpath +" "+ destinationlocation);' – Orin

+0

ありがとうございました。また、もう一つの理由は、私はfilepathのためにセットを与えていたということでした。一度私はファイルパスのための設定を削除し、それは私のために働いた。 – Vinmee

答えて

1

使用ProcessBuilder

Process p = new ProcessBuilder("wscript", scriptpath, destinationlocation).start(); 
0

ごresponeありがとうございました、私の問題は、私はWScriptの中で「」を追加してもmyVB2.vbs

にファイルパスからセットを削除するに解決されます
関連する問題