dポイントプレゼントキャンペーン実施中!

エクセルで管理するデータをマクロによるResgen.exe実行で、resxファイル化を考えています。
しかしながら、VsDevCmd.batを経由して、Resgen.exeを実行した結果、エラーが発生してしまいます。
コマンドプロンプトの実行までは行えてはいるため、コマンドに誤りがあるのでは?とHPで調査などを行いましたが、解決方法が見つけられません。
解決方法などをご存じでしたら、ご教授のほど、お願いいたします。

<環境>
Visual Studio 2015 Professional

<動作の流れ>
①エクセルの表データをtxtファイルで出力。(「○○=××」の構図。)
②WshShellのRun関数を、Resgen.exe、①作成txtファイルパス、出力ファイルパスのコマンドを引数にして実行。
※①のtxt

<処理>
Sub Output()
TextOutput
Exchange
End Sub

Function TextOutput()
Open テキストファイルパス For Output As #1
Dim rowNo as Integer
rowNo = 1
Do While 行参照ループ条件
Print #1, Cells(rowNo, 0).Value & "=" & Cells(rowNo, 1).Value
Loop
Close #1
End Sub

Function Exchange()
Set wsh = CreateObject("Wscript.Shell")
Call wsh.Run("%comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.bat"" & d: & Resgen.exe /テキストファイルパス 出力ファイルパス"
End Function

<実行結果>
ResGen : error RG0000: Unrecognized switch: "/C:\xxxx\yyyy\zzzz". Use ResGen /? for usage information.

A 回答 (1件)

正直やっておられる内容はチンプンカンプンで的外れな回答かもですが。

。。

文字列として与えているwsh.Run("~ ")の中の、"" がなんか気になりますね。
"" は ' かエスケープ \" に置き換えたらと思えますが違いますかね?

あとは

>Resgen.exe /テキストファイルパス

/ の後ろにスイッチは不要でも可なのでようか?

多分返信で問い合わせを頂いても私は疑問は持ってますが知識の方が・・・(なら何故回答しているのだろう?)
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
返答が遅くなってしまいすみません。
解決することができました。

>/の後ろにスイッチは不要でも可なのでようか?

↑がまさにキーだったようです。
/を消せば動かすことができました。
当初はスイッチを入れる・・・という方向で調査を進めていたのですが、結果は全く逆で、スイッチを入れないから/が不要でした。

解決への引き金になってくださり、ありがとうございました。

お礼日時:2019/01/17 19:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!