[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『時刻指定でセルの値を自動クリアするマクロ』(ポポン)
指定した時刻にセルの値を自動でクリアするマクロを以下の様に組みました。
Sub Auto_Open()
macro1
End Sub
Sub macro1()
Range("A1:A2").ClearContents Application.OnTime Now + TimeValue("15:00:00"), "macro1"
End Sub
指定時刻(15:00:00)になるとA1~A2のセルに入力されている値が自動的にクリアされるようなマクロを目指してみたのですが、このままでは時刻になっても自動クリア出来ませんでした。ブックを閉じて再度Excelを立ち上げると時刻に関わらずセルがクリアさえてしまいます。
どのような修正を加えるとよいでしょうか?
宜しくお願い致します。
< 使用 Excel:Office365、使用 OS:Windows10 >
Nowを足さないか(日を省略すると当日になる)、Int(Now)に15時間足すか(日付型を整数化すると時刻情報が消える)、ですね。
(???) 2020/07/06(月) 16:56
1回だけで良いなら、OnTimeを書くのはAuto_Open時になります。 現状だと、正しく15時に動くように直した場合、15時になると自分を再登録し、無限ループしそうに見えます。
(???) 2020/07/06(月) 16:59
>ブックを閉じて再度Excelを立ち上げると時刻に関わらずセルがクリアさえてしまいます。 >Range("A1:A2").ClearContents >Application.OnTime Now + TimeValue("15:00:00"), "macro1" 順番を入れ替えてください。 (POPO) 2020/07/06(月) 17:03
返信ありがとうございます。
Application.OnTime TimeValue("15:00:00"), "macro1" に修正し15:00:00にデータクリアされるのを確認しました。ありがとうございます。
Excelは常に動かしっぱなしになりますので、毎日15:00にクリアしてくれるのであれば、この修正で大丈夫です。
(ポポン) 2020/07/06(月) 17:16
Sub Auto_Open() macro1 End Sub
Sub macro1() Application.OnTime TimeValue("15:00:00"), "macro1" Range("A1:A2").ClearContents End Sub
上記の様な修正でよろしかったでしょうか?
テストしてみましたが、セルに値が入力されている状態で上書き保存した後Excelを閉じて再度開くとやはりセルの値がクリアされた状態で立ち上げってしまいました。
(ポポン) 2020/07/06(月) 17:19
動かし続けるなら、Auto_Open時は当日の15時でOnTimeして、Macro1では翌日の15時でOnTimeしましょう。
こうすれば、起動時に消去してしまう問題も解決するでしょう。
(???) 2020/07/06(月) 17:39
>順番を入れ替えてください。 理解されたのでしょうか。 >やはりセルの値がクリアされた状態 これについては分かりません。他の回答を期待してください。 (POPO) 2020/07/06(月) 19:18
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.