• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:batファイルでのプログラム起動順)

batファイルでのプログラム起動順

このQ&Aのポイント
  • batファイルで複数のプログラムを起動し、起動順を制御する方法について教えてください。
  • 起動したいプログラムの順番を指定してbatファイルで実行する方法を教えてください。
  • batファイルの記述でプログラムの起動タイミングを遅らせることは可能でしょうか。

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

  • ベストアンサー
  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.2

スクリプトの記述場所は、問題ないと思います。 ただし、このスクリプトは、起動時に実行する全てのプログラムの初期処理が終了した後で、実行しなければ意味がありません。 ※このスクリプトを実行した後で、他のアプリケーションの初期化が完了すると、そのアプリケーションが最前面にでてしまう可能性がある。 bat ファイルの最後に、このスクリプトが実行されるよう記述位置を変更すると共に、他のアプリケーションの初期化を待ち合わせる意味で、下記のコマンドを、objShell.AppActivate("Microsoft Excel") の直前に追加してみてください。  WScript.Sleep 5000 なお、上記の "5000" は、待ち合わせる wait 時間(ms)を指定しています。とりあえず、5秒としましたが、これでも短いかもしれないので、実態に合うように調整してください。

begj
質問者

お礼

できました! 私も色々調べて開始を遅らせる記述をしていたのですが、スペルが間違っていたようです・・・・ ありがとう御座いました

その他の回答 (1)

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

お問い合わせになっている状態というのは、システムの起動が完了した時にエクセルのウィンドウがアクティブ状態になっていること、と判断しました。 そのためには、プログラムの起動タイミングを操作しても、難しいと思います。 それよりも、bat ファイルの最後でエクセルのウィンドウをアクティブ状態にしてあげれば良いと思います。 それには、WHS(Windows Script Host) を使います。 WHS の起動方法は、次のように cscript コマンドから スクリプト・ファイルを呼び出します。  C:\> cscript //NOLOGO Sample.vbs 今回のスクリプトでは、エクセルのウィンドウをアクティブ状態にするので、"Sample.vbs" は以下のような 2行のスクリプトになります。  ※ Sample.vbs の内容(メモ帳で編集してください。) set objShell = WScript.CreateObject("WScript.Shell") objShell.AppActivate("Microsoft Excel")  注意) 2行目の "Microsoft Excel" 部分は、前面に出したいウィンドウの左上に表示されているキャプション(名前)に合わせてください。 ご自分のシステムで、エクセルを起動させた時のキャプションになるように変更してください。

begj
質問者

補足

ご回答ありがとう御座います。 ならびに返事が遅れましたこと申し訳御座いませんでした。 教えていただいたとおり実行してみましたが C:\> cscript //NOLOGO Sample.vbsの記述は エクセルなどを立ち上げるbatファイルに記述すればいいのでしょうか? 全てのプログラムを立ち上げた後コマンドプロンプトにて sample.vbsを実行してみるとエクセルがアクティブになるのですが、 batファイルにて立ち上げてみるとエクセルがアクティブになりません・・・ 記述場所を変えないといけないのでしょうか?

関連するQ&A