• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Calculate を止めたいのですが)

マクロで自動更新を止める方法はありますか?

このQ&Aのポイント
  • 自動更新するマクロがありますが、止め方が分かりません。
  • マクロを実行すると、24時間自動で更新が続きます。
  • マクロを実行した後、別の設定ボタンを押すことで停止できる方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.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

KashiMAX
質問者

お礼

確認とれましたありがとうございます。 更新用のコードも1行でいいんですね。 すばやい回答ありがとうございます。

KashiMAX
質問者

補足

>Application.OntimeValue?! なんか変ですね。そのマクロほんとに動いてるんですか?それとも書き間違いじゃないですか? すみません書き間違いでした。 Application.OnTime TimeValue(”00:00:00”), ”Macro1" が正しい表記でした。 回答ありがとうございます。 すぐ実機確認できないのですが、試してみます。

その他の回答 (2)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

あちゃ!まちがえた。 Sub 更新() の MsgBox bufは余計です。 Sub 更新() Calculate Application.OnTime Now + TimeValue("00:03:00"), "開始" End Sub にしてください。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

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

関連するQ&A