[[20200714115052]] 『毎日同じ時間にマクロを実行する方法』(ねこちぐら) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『毎日同じ時間にマクロを実行する方法』(ねこちぐら)

常にExcelが開かれていることを前提に、毎日同じ時間になると
自動で実行するマクロを考えています。

毎日7:00になると、Sheet1のA1セルの値をクリアする仕様にしたいので、
↓のようなコードを考えてみました。

Sub macro1() '時間指定自動起動

Application.OnTime TimeValue("07:00:00"), "ALLRESET", TimeValue("00:00:30")

End Sub

Sub A1RESET() 'A1セルのクリア

Dim MyDate As Date

Range("A1").ClearContents

MyDate = DateValue(Now() + 1)

Application.OnTime TimeValue("07:00:00") + (MyDate), "A1RESET", TimeValue("00:00:30") '翌日のOnTimeセット

End Sub

これを基準モジュールで実行していますが、指定時刻になっても
A1セルのクリアが実行されません。

どういった改善を加えればよいのか、どなたかご伝授お願いします。

< 使用 Excel:Excel2019、使用 OS:Windows10 >


Now() とすると、年月日時分秒が返ってくるのです。 つまり、現在時刻も含まれてる。 それに7時間足しているから、7時になったら動作、ではなく、翌日の現在時刻の7時間後に動作、となってますよ。

Int(Now()) とすれば、日付情報だけになります。
(???) 2020/07/14(火) 13:40


返信ありがとうございます。

現在時刻から7時間後になってしまっていたのですね。
Application.OnTime DateValue(Date + 1) + TimeValue("07:00:00") に変更して
翌日の7時に実行されるように変更してみました。時計の時刻を手動で翌日にずらして
マクロの自動実行が確認できたので大丈夫そうです。
ありがとうございました!
(ねこちぐら) 2020/07/14(火) 14:42


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.