2016-12-14 16 views
-1

VBコードを実行することは可能ですか PowerShell?私はPowerShellの内部から.vbsを呼びたくないので、PowerShellスクリプトの中にVBコードを埋め込みたいと思っています。私は、あなたがそれを行うことができると確信しています。しかし、私はどのようにして堅実なGoogleの結果を得ることができないのか分かりません。私はちょうどこの時点で推測しています。VBコードをPowerShell内で実行する

PowerShellで引数を持つ.vbsを呼び出していますが、引数パラメータはExecuterがPowerShellを実行している間の選択に基づいているため、すべてを1つのファイルにまとめたいからです。

現在、私はCSVへのExcelシートの2ページ目を回すために、これを使用しています:

Dim oExcel 
Set oExcel = CreateObject("Excel.Application") 
Dim oBook 
Set oBook = oExcel.Workbooks.Open(Wscript.Arguments.Item(0)) 
oBook.Worksheets(2).Activate 
oBook.SaveAs WScript.Arguments.Item(1), 6 
oBook.Close False 
oExcel.Quit 

私はthis from the Scripting Guy blogを使用しようとしたが、それは仕事を得ることができなかったし、そこに答えを得たことはありません。

私はこのエラーを取得する:

Const : The term 'Const' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify 
that the path is correct and try again. 
At line:1 char:1 
+ Const xlCSV = 6 
+ ~~~~~ 
    + CategoryInfo   : ObjectNotFound: (Const:String) [],  CommandNotFoundException 
    + FullyQualifiedErrorId : CommandNotFoundException 

誰もがこのPowerShellのコードは、私はあまりにも大好きです私のExcelシート(SHEET1)の第二のシートを得るためにどのように動作するか私を見ることができます。

私はそれがそうだと思うほど簡単で無意味であると思います。ご協力いただきありがとうございます。

+0

は、関連するPowerShellの行を含めるために役立つだろうも –

+0

あなたのコードスニペットは、VBScriptです。あなたのPowerShellスクリプトは、予期せぬ言葉を示すPowerShellを示すものである必要があるようです。もちろん、PowerShell *内でVBスクリプトを書くことはできません。あなたはそれを呼び出して前後にデータを渡す必要がありますが、それは非常に不要です。 PowerShellを使用してください。 – gravity

+0

私のPowerShellコードは問題ありません。その中の.vbsへの唯一の参照は、引数/呼び出し '。\ Converter.vbs" $ Selection "" $ WorkCSV "'です。 Scripting Guyの一部を動作させる方法を知っている人は、私の問題を解決できます。 – Nate

答えて

2

あなたは直接のPowershell自体にこれを行うことがVBSを使用する必要はありません:

$a = New-Object -comobject Excel.Application 
$a.Visible = $True 

$b = $a.Workbooks.Open("C:\_Stuff\test2.xlsx") 
$c = $b.Worksheets.Item(2) 
$c.Activate() 
$b.SaveAs(“C:\_Stuff\Test.csv”,6) 
$b.Close(0) 
$a.Quit() 

https://blogs.technet.microsoft.com/heyscriptingguy/2006/09/08/how-can-i-use-windows-powershell-to-automate-microsoft-excel/

+0

Excellent。ありがとう! – Nate