- ベストアンサー
バッチファイルでエクセルが表示できない
※「\」はすべてエンマークで入力しているとみなしてください。 下記ディレクトリにある「TestBook.xlsx」というエクセルブックを開くバッチファイルを作ろうと考えています(OSはWindows7 Professional 64bit)。 D:\TestBookFolder 試しに作ってみたバッチファイルの中身は下記の通りです。 ~~~~~~~~~~~ cd/d D:\TestBookFolder doskey excl = for %1 in ($*) do "C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE" %1 @echo off rem exclは自分で定義した変数 excl TestBook.xlsx ~~~~~~~~~~~ しかしながらこれを実行すると、一瞬コマンドプロンプトの画面が見えるだけで エクセルは全く表示されません。何が間違っているのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
~~~の間のバッチのコーディングですがバッチファイルからのコピペですか? そうだと仮定して回答します。 明らかに間違っているものは >cd/d D:\TestBookFolder Cdと/dの間に半角スペースが必要! >doskey excl = for %1 in ($*) do "C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.EXE" %1 1.この行のスペースが全角文字→半角文字に修正 2.BATファイルのコーディングでは、コマンドプロンプトと異なり一部の%やリダイレクト、の>、=などは %%、>>、==と二つ重ねる (コマンドプロンプトでhelp forにバッチは%iは%%iと書いてある) 3. DOSKEYは何をやりたいのか不明?? DOSKEY :実行ファイル名 [/MACROFILE=ファイル名][マクロ名=[テキスト]] あたり??? For の後の %1…??? %I または %i では? >しかしながらこれを実行すると、一瞬コマンドプロンプトの画面が見えるだけで エクセルは全く表示されません。何が間違っているのでしょうか? 最初から完成系は狙わず、デバッグでは、先頭に Echo on を入れる そして各行の間に Pause を入れます。 (慣れていれば数行単位で入れたり外したりする) これで、一行単位、又はブロック単位で実行されるのでデバッグする。 @echo off は最後に入れるか現状ではrem化しておく。 目的のbatが出来て、実行して修正すべき箇所がなくなったら PAUSEを削除し、ECHO関係を正常化する。 以上 参考まで
お礼
遅くなって済みません。初歩的なとこからつまづいてたようで。。。。ご回答ありがとうございます。