• ベストアンサー

バッチファイルでエクセルが表示できない

※「\」はすべてエンマークで入力しているとみなしてください。 下記ディレクトリにある「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 ~~~~~~~~~~~ しかしながらこれを実行すると、一瞬コマンドプロンプトの画面が見えるだけで エクセルは全く表示されません。何が間違っているのでしょうか?

  • R958XX
  • お礼率75% (165/219)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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関係を正常化する。 以上 参考まで

R958XX
質問者

お礼

遅くなって済みません。初歩的なとこからつまづいてたようで。。。。ご回答ありがとうございます。

関連するQ&A

  • コマンドで複数のエクセルファイルを開く

    ※「\」はすべてエンマークで入力しているとみなしてください。 下記ディレクトリにある「TestBook1.xlsx」と「TestBook2.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 TestBook1.xlsx TestBook2.xlsx ~~~~~~~~~~~ このときブック自体はどちらも開かれるのですが、ウィンドウが別々になってしまいます。 同じウィンドウで複数のブックをコマンドで開くにはどうしたらよいでしょうか?

  • バッチファイルでエクセルのマクロを動かしたい

    最近になってバッチファイルを知りました。バッチファイルを使ってエクセルファイルの中に書かれたマクロを動かしたいと思っています。 過去ログの検索をし、マクロが書かれたエクセルを起動させるところまではわかりました。 しかしその先がわかりません。わからない内容は次の二つです。 1)エクセル起動時マクロを有効にするかどうか聞いてきます。自動的に有効で起動させるにはどうしたらいいでしょうか。 2)Macro1という名前のものが001.xlsの中に既に作ってあったとして、これを作動させるにはどのようにしたらいいのでしょうか。 環境はwin xp sp2 office2000です。 過去ログを参考にし、下記記述で001.xlsを開くところまではわかりました。この後をどうすればいいか、よろしくお教えください。 "C:\Program Files\Microsoft Office\Office\excel.exe" "c:\My Documents\001.xls"

  • バッチファイルでのif文分岐

    ドラッグ・アンド・ドロップ(以下、D&D)によるバッチファイルを作成する際にダブルクリックでバッチファイルを開こうとする行為のフェールセーフを考えています。 現状では、以下のバッチファイルにファイルやフォルダをD&Dするとif文の分岐の箇所で終了してしまいます。 有識の方の教授をお願いします。 /* ↓↓ 以下コードです ↓↓*/ @echo off if "%1"=="" goto error rem D&Dされたパスを表示 echo %1 echo 終了しました。 goto end :error echo このファイルはダブルクリック形式ではありません。 echo ファイルやフォルダをD^&Dして下さい。 pause exit :end exit /* ↑↑ ここまで ↑↑ */ 開発環境 OS:WindowsXP 以上、よろしくお願いします。

  • コマンドプロンプトでのマクロ使用

    バッチファイルを作成しているんですが ディレクトリを指定する箇所が多いので、簡潔に cdコマンドで移動する処理をd1,d2のようにしてマクロにしたいと思うのですが思うようにいきません。 コマンドプロンプト上に手打ちならば動くのですが バッチファイル上に組み込むと動きません。 doskeyを用いて、以下のような使用を考えています。(一部のみ) doskey d1=cd C:\aaa doskey d2=cd C:\bbb echo ***起動 d1 start ***.exe d2 start ***.exe

  • バッチファイル エクセル起動

    いつも大変御世話になっております。 WindowsVISTA環境で以下バッチ【ABC.bat】が稼動します。 "ABC.bat"------------------------------------------------- "C:\Program Files\Microsoft Office\Office12\EXCEL.EXE" "F:\EXCEL_OPEN\ABC.xls" echo %ERRORLEVEL% pause "ABC.bat"------------------------------------------------- 上記バッチの構文について3点質問があります。 (1)OS等が変わった場合、EXCEL.EXEの格納パスも変更するので   当然変更しなければいけないのでしょうか? (2)上記バッチを起動する前に他のエクセルを開いていた場合(例えばDEF.xls)、  ABC.xlsとDEF.xlsを両方閉じなければバッチの後続処理が動きません。  ABC.xlsだけ閉じてバッチの後続処理を動かす事は可能なのでしょうか? (3)上記構文でエクセル(マクロ)からエラーレベルを取得できるのでしょうか?  ※上記バッチで開くエクセルは開いたら自動でマクロが動きます。 もしご存知の方がいらっしゃるようでしたら、ご教授願いますでしょうか? 以上、何卒宜しくお願い致します。

  • バッチファイル 月のmm表示とm表示の出し分け

    \\test\配下には、毎月の実績ファイルが下記のように格納されています。 WinXPで、バッチファイルを使用して当月の実績ファイルをコピーしようとしています。 ※月がmm表示とm表示で混在しています ●ディレクトリ \\test\ ●ファイル 2010年1月.xlsx 2010年2月.xlsx ・・・ 2010年12月.xlsx 今回、mm表記の月名に対応して、下記のようなコマンドを書いてみました。 2010年12月分については想定通りコピーできました。 ただ、mm表記とm表記が混在する場合の書き方が分かりません。 ご教授願えますでしょうか。 ※やり方として思いつくのは下記ですが、実装ができません。  (1)下記でファイルが取得できない場合に、yyyy年m月ファイルを取得する、という判断を入れる  (2)mm月の十の位が0だったら一の位のみ使ってyyyy年m月ファイルを取得する ---------+---------+---------+ ●書いてみたコマンド REM ファイル名にyyyy年mm月をセットしてファイル取得 copy \\test\毎月の実績(%yyyy%年%mm%月).xlsx REM クライアントの本日日付をorgdateという引数にセット REM 形式は"yyyy/mm/dd" set orgdate=%date% REM orgdateから年(yyyy)を抜き出してorgyearにセット set orgyear=%yyyy/mm/dd:~0,4% REM orgdateから月(mm)を抜き出してorgmonthにセット set orgmonth=%yyyy/mm/dd:~5,2% REM ファイル名にyyyy年mm月をセットしてファイル取得 copy \\test\毎月実績(%yyyy%年%mm%月).xlsx

  • バッチファイルの作り方

    diskshadowコマンドを使ってバッチファイルを作りたいと思っています。 1.DISKSHADOW  プロンプトがDISKSHADOW>と表示 2. Delete Shadows Oldest D:  Dドライブの一番古いシャドウコピーを削除 この流れをひとつのバッチファイルのしたいのですが、1のプロンプトが変わってしまうところで止まってしまいます。 作成したバッチファイルです。 --------------------------------- C:\Windows\System32\diskshadow Delete Shadows Oldest D: --------------------------------- どう直したらいいのでしょうか、どうかご教授ください。 よろしくお願いします。

  • バッチファイル ファイル内で改行したい

    バッチファイルで、echo出力文字列が長くなる場合など(&でコマンドをつなげた場合も)見づらいので、任意のところで改行したいです。 コマンドプロンプトでは^(キャヘット?)で可能のようなのですが、バッチファイルの場合はどのようにすればよいでしょうか?よろしくお願いします。

  • バッチファイルのIF文について

    お世話になります。 現在バッチファイルを作成中なのですが、作成したバッチファイルを実行すると 「"("の使い方が間違っています」というエラーでこけてしまいます。 原因箇所は、下記コマンドの★部のIF文であることはほぼ間違いないのですが、 Webサイトで紹介されている原因である、「"("の直前やIF文内にコメントがあると発生する」という 条件には当てはまらないためエラーになる原因がわからず、投稿させていただきました。 ============================================= REM メイン処理 if %FLAG% == 1 ( echo %MSG1%から%MSG2%へPingを送信 ping -n 2 %PING_HOST% ) else ( echo 該当する設定がありません ) pause REM pingが通らなかった場合にイベントログにエラーを出力する if %Errorlebel% == "1" (   ★ echo 疎通不可 eventcreate /L Application /T ERROR /id 999 /d "%MSG1%から%MSG2%へ疎通不可。" ) else (                   ★ echo 疎通 eventcreate /L Application /T INFORMATION /id 111 /d "%MSG1%から%MSG2%へ疎通確認。" ) pause ============================================= よろしくお願いいたします。

  • バッチファイルについて教えてください

    こんばんは ネットサーフィンをしていてバッチファイルが便利なのもだと知りました。 そこで質問なのですが、特定の起動しているプログラムを終了させるには、どういった風に記述すればいいのでしょうか? また、エクセルやワードなどでは終了させる際に「保存しますか」のメッセージが流れますが、すべて「いいえ」で終了させるようなバッチファイルを作るにはどうしたらよいのでしょうか? ワードを例として教えていただけると、うれしいです。 作業フォルダ「H:\Program Files\Microsoft Office\OFFICE11」 プログラム名「WINWORD.EXE」 ここを読んだんですが、理解不能でした。 http://oshiete1.goo.ne.jp/qa2662369.html あと、バッチファイルに関して初歩的なものからいろいろな応用例が載っているサイトをご存じでしたら、教えてください。 以上、よろしくお願いします。