[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『毎月月初の指定時間にマクロを実行させる方法』(ねこちぐら)
先日 毎日同じ時間にマクロを実行する方法を質問させて頂いた者です。
[[20200714115052]]
その時は、毎日7:00にA1セルの値をクリアするマクロについて
質問させて頂き、以下のコードにて実行できました。
Sub macro1() '時間指定自動起動
Application.OnTime TimeValue("07:00:00"), "ALLRESET"
End Sub
Sub ALLRESET() '時間指定自動データクリア
Range("A1").ClearContents
Application.OnTime DateValue(Date + 1) + TimeValue("07:00:00"), "ALLRESET"
↑ 翌日のOnTimeをセット
End Sub
今回、毎月月初(1日)の7:00になるとA1セルをクリアする方法を
考えています。
前回をベースに、月初め(1日)の7:00にA1セルをクリアする
コードを↓の様に考えてみました。
Sub macro1() '時間指定自動起動
Application.OnTime TimeValue("07:00:00"), "ALLRESET"
End Sub
Sub ALLRESET() '時間指定自動データクリア
Range("A1").ClearContents
Application.OnTime DateSerial(Year(Date), Month(Date), 1) + TimeValue("07:00:00"), "ALLRESET"
↑ 翌日のOnTimeをセット
End Sub
(PCの時刻をいじって 8/1 7:00)試しに実行してみると、8/1の7:00になるとA1セルに入力された値はクリアされるのですが、その後すぐに待ち状態になってしまい、そのまま動かなくなってしまいました。
日付を指定したDateSerial関数の部分が悪さしていると思うのですが、
どの様な修正を加えるとよいのでしょうか?
因みに、Thisworkbookに以下のコードを書き込んであり、
Excelを開くことで指定した日付時刻にA1セルをクリアするマクロが
動くようにしてあります。
Private Sub Workbook_Open() 'Excel起動時に"時間指定自動起動"を実行
Call macro1
End Sub
以上、宜しくお願い致します。
< 使用 Excel:Excel2019、使用 OS:Windows10 >
当日を元に1日目を計算しているから、当月の1日になってますよ。
来月の1日にしたいなら、月に+1しましょう。
(???) 2020/07/16(木) 16:45
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.