データの分析、グラフ作成、および通信のためのツールを備えた Microsoft 表計算ソフトウェアのファミリ。
こちらですね。参考のためリンクを残しておきます。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
最初の10秒間は1秒ごとに実行しますが、10秒経過すると5秒ごとに、更に50秒(5秒×10回?)経過すると20秒間隔になります。
OnTimeの設定を2秒にすると、20秒後(2秒×10回)に5秒間隔になり、更に50秒後(5秒×10回)に20秒間隔になります。
いずれのケースもマウスを動かすと1秒毎または2秒毎に復帰します。
この原因と解決策をどなたか教えてください。
<VBA code>
Public 時計 As Date
Public ctr As Long
︙
Call 時計表示
︙
Sub 時計表示()
Application.EnableEvents = False
ThisWorkbook.Worksheets("番号表").Range("G3").Value = Now
Application.EnableEvents = True
ctr = ctr + 1 '← 検証のためだけに追加したCode
Debug.Print ctr, Now '← 検証のためだけに追加したCode
時計 = Now + TimeValue("00:00:01")
Application.OnTime 時計, "時計表示"
End Sub
Debugの結果、1秒毎に「Sub 時間表示」が実行されていないことが判明しました。
TimeValueを2秒に設定しても同様の結果です。
データの分析、グラフ作成、および通信のためのツールを備えた Microsoft 表計算ソフトウェアのファミリ。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
2025年4月16日に、hideponさんが同じ内容の質問をされれていることに気が付きました。
hideponさんは、StackOverflowにも質問されており、StackOverflowでは的確な回答が寄せられていました。
私は、StackOverflowの二番目の回答者 Chris Cさんが教えて頂いた「NudgeMouse関数」を使うことで、OnTimeの異常に対処することにしました。
今のところ、OnTimeは順調に動作しています。
私の質問にも書きましたように、OnTimeが異常になってもマウスを動かすと1秒ピッチに復帰することは分かっていたのですが、Chris Cさんは「NudgeMouse関数」を使いマクロでマウスを動かすことで、OnTime異常に対応しておられました。
OnTimeの異常の原因は分からないままですが、取り敢えず問題は解決しました。
hideponさん、Chris Cさん、有難うございました。
とりあえず、コードをできる限り最小化して(OnTime だけ実行するようにして)現象が再現するか確認。
それでも再現するなら製品や環境に偉人する問題か、製品バージョンや環境を変えて検証。
最小化したら再現しないのであれば、最小化の際に省いていったコードのどこかに原因がある。
まずはこういう基本のデバッグをちゃんと行わないと、Stack Overflow などの開発者向けサイトで質問しても相手にされない場合があります。
VBA(マクロ)の公式サポート場所は、海外コミュニティとなっています。
有識者が集まっている所の方が、適切なアドバイスを受けやすいでしょう。
[VBA プログラミングに関する質問]
Stack Overflow には、説明的なタイトル、完全で簡潔な問題ステートメント、問題を再現する
ための十分な詳細の要求などのガイドラインがあることに注意してください。
機能要求または過度に広範な質問は、トピック外と見なされます。
新しいユーザーの場合は、Stack Overflow ヘルプ センター にアクセスして詳細を確認して下さい。
※ 閲覧者・回答者が多い公式サポートサイトをお勧めします。
英語で質問を送信してください。