• ベストアンサー

EXCEL VBA 自動でプログラムの実行できますか

EXCELのVBAでタイマー等を使用して一定の時間がきたら プログラムを実行させたいのですが、教えて下さい。 宜しくお願いします。

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

  • ベストアンサー
  • pauNed
  • ベストアンサー率74% (129/173)
回答No.3

#2補足へのレスです。 まずはこの辺りを参考に、タスクスケジューラでExcelを起動する設定にしてみてください。 http://www.atmarkit.co.jp/fwin2k/win2ktips/335tasksched/tasksched.html (OSによって違うかもしれません。VISTAはわかりませんm(_ _)m) その後、設定したタスクの[プロパティ]の[タスク]タブの「実行するスケジュール」欄に EXCEL.EXE "C:\work\book1.xls" などというように、起動したいxlsファイル名を ドライブ-フォルダ-からのフルパスで指定してあげると良いです。 もしくは、タスクではExcel起動だけにして、 目的のファイルをStartupフォルダに置いて、Excel起動時に必ず開くようにしても良いです。 2000/xp系のOSなら通常は C:\Documents and Settings\(ユーザー名)\Application Data\Microsoft\Excel\XLSTART というフォルダになります。 あとは、その目的のファイルが開かれた時に、マクロが自動実行されるように ThisWorkbookモジュールの Workbook_Open イベントを使うか、 標準モジュールに Sub auto_open () プロシージャを記述して使うか、などです。

その他の回答 (2)

  • pauNed
  • ベストアンサー率74% (129/173)
回答No.2

こんにちは。 OnTimeメソッドのほうかもしれませんね。ニーズにあわせて判断してみてください。 内容はヘルプで確認したほうが良いでしょう。 Sub testA()   Dim d As Date      d = DateAdd("s", 5, Now)   Call Application.OnTime(EarliestTime:=d, _               Procedure:="testB") End Sub Sub testB()   MsgBox "testB" End Sub #当然の事ですが、OnTime時にExcelが起動していないと実行されません。 #Excel起動から制御したい場合はOSのタスクスケジューラなどを使用する事になるかと。

hornet042
質問者

補足

ご回答ありがとうございました。 このタスクスケジューラの使用方法を教えていただけますか。

  • mohenjo
  • ベストアンサー率37% (125/335)
回答No.1

現在より10秒経てば Application.Wait(Now + TimeValue("0:00:10"))  希望のコード(プログラム)

関連するQ&A

専門家に質問してみよう