アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (3件)

現在より10秒経てば


Application.Wait(Now + TimeValue("0:00:10"))
 希望のコード(プログラム)
    • good
    • 0

こんにちは。


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のタスクスケジューラなどを使用する事になるかと。

この回答への補足

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

補足日時:2007/06/26 15:33
    • good
    • 0

#2補足へのレスです。



まずはこの辺りを参考に、タスクスケジューラでExcelを起動する設定にしてみてください。
http://www.atmarkit.co.jp/fwin2k/win2ktips/335ta …
(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 () プロシージャを記述して使うか、などです。
    • good
    • 0

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