Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


63138 / 76732 ←次へ | 前へ→

【18193】Re:30秒ごとにずっとタイマーをかけたい
発言  ichinose  - 04/9/17(金) 18:33 -

引用なし
パスワード
   Kein さん、タイマー30 さん、こんばんは。
ちょっとKein さんのコードより、長いけど以下のコードを
試してみて下さい。

標準モジュール(Module1)に
'=============================================================
Sub main()
  '設定
  Call mc_schedule(True, TimeValue("17:00:00"), TimeValue("00:00:05"), "test")
End Sub
'==============================================================
Sub test()
  '実際に実行するプロシジャー
  [a1].Value = [a1].Value + 1
End Sub
'==============================================================
Sub subproc()
  '解除
  Call mc_schedule(False)
End Sub


別の標準モジュール(Module2)に
'==================================================================
Private exetm As Variant '次の実行時刻
Private lmtm As Variant '最終時刻
Private reptm As Variant '実行間隔時間
Private prcnm As String '実行プロシジャー名
Sub mc_schedule(ByVal on_off As Boolean, Optional ByVal limit_time As Variant, _
        Optional ByVal rep_time As Variant, Optional ByVal proc_name As String)
'マクロ実行のスケジュールの設定を行う
'input : on_off --- true スケジュール設定 false---スケジュール解除
'    limit_time 実行を繰り返す最終時刻
'    rep_time  実行間隔時間
'    proc_name 実行するプロシジャー名
  On Error Resume Next
  If on_off = True Then
    reptm = rep_time
    lmtm = limit_time
    exetm = Now + reptm
    prcnm = proc_name
    End If
  Application.OnTime EarliestTime:=exetm, Procedure:="mc_exec", Schedule:=on_off
  On Error GoTo 0
End Sub
'=================================================================
Sub mc_exec()
'スケジュール設定されたプロシジャーを実行する
  Dim wk As Variant
  wk = Application.Run(prcnm)
  If Time() + reptime < lmtm Then
    Call mc_schedule(True, lmtm, reptm, prcnm)
    End If
End Sub


プロシジャーmainの実行で10秒おきに「test」を実行します。

途中解除はする場合は、「subproc」を実行して下さい。

私の環境でテストした限りでは、うまく動いてくれました。
確認して下さい。

0 hits

【18169】30秒ごとにずっとタイマーをかけたい タイマー30 04/9/16(木) 23:23 質問
【18170】Re:30秒ごとにずっとタイマーをかけたい ichinose 04/9/16(木) 23:58 発言
【18172】Re:30秒ごとにずっとタイマーをかけたい Kein 04/9/17(金) 1:51 回答
【18178】Re:30秒ごとにずっとタイマーをかけたい タイマー30 04/9/17(金) 9:42 質問
【18190】Re:30秒ごとにずっとタイマーをかけたい Kein 04/9/17(金) 18:04 回答
【18193】Re:30秒ごとにずっとタイマーをかけたい ichinose 04/9/17(金) 18:33 発言

63138 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free