- ベストアンサー
マクロで自動更新を止める方法はありますか?
- 自動更新するマクロがありますが、止め方が分かりません。
- マクロを実行すると、24時間自動で更新が続きます。
- マクロを実行した後、別の設定ボタンを押すことで停止できる方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1-2のmerlionXXです。 先ほどはあまり考えずに回答してしまいました。 あのままでは、一旦「停止」を作動させたら、再度「開始」しても動きません。そのエクセルファイルを終了させれば、また「開始」は有効になりますがそれでは不便ですよね。 修正しました。これなら何度でも停止、開始が有効です。 Dim buf As Boolean '←標準モジュールの一番上にこれを忘れずに Sub 更新() If buf Then Exit Sub Calculate Application.OnTime Now + TimeValue("00:03:00"), "更新" End Sub Sub 開始() buf = False Call 更新 End Sub Sub 停止() buf = True End Sub
その他の回答 (2)
- merlionXX
- ベストアンサー率48% (1930/4007)
あちゃ!まちがえた。 Sub 更新() の MsgBox bufは余計です。 Sub 更新() Calculate Application.OnTime Now + TimeValue("00:03:00"), "開始" End Sub にしてください。
- merlionXX
- ベストアンサー率48% (1930/4007)
Application.OntimeValue?! なんか変ですね。そのマクロほんとに動いてるんですか?それとも書き間違いじゃないですか? で、3分ごとにCalculateで計算させてるってことは。計算は手動に設定してあるということですね? ならこんなのはどうでしょう。 Dim buf As Boolean '←標準モジュールの一番上にこれを忘れずに Sub 更新() Calculate MsgBox buf Application.OnTime Now + TimeValue("00:03:00"), "開始" End Sub Sub 開始() If buf Then Exit Sub Call 更新 End Sub Sub 停止() buf = True End Sub
お礼
確認とれましたありがとうございます。 更新用のコードも1行でいいんですね。 すばやい回答ありがとうございます。
補足
>Application.OntimeValue?! なんか変ですね。そのマクロほんとに動いてるんですか?それとも書き間違いじゃないですか? すみません書き間違いでした。 Application.OnTime TimeValue(”00:00:00”), ”Macro1" が正しい表記でした。 回答ありがとうございます。 すぐ実機確認できないのですが、試してみます。