実現したいこと
OnTimeStartで1秒ごとに、7行目の値を、8行目以下にコピーする処理をしています。
処理の内容:
OnTimeイベントを1秒ごとに発生し、イベント発生時に、7行目のセルを、8行目以下に順次コピーします。1行コピーしたあとは、現在の書き込み位置を示すポインタをセルa7に更新します。
ただし、実行前に、セルa7に初期値0をセットしておきます。
シートにコピーされる状況を観測します。
実際にコピーする内容は、コードには示していない、別途のRSS関数でリアルタイムに7行目にセットされる値です。質問では、この部分を省略しても、時間に更新記録だけのコピーで状況が再現できるので、省略しています。
イベント処理の問題の追及は小生にとって困難です。
コードに本質的な問題はどこかにあるでしょうか。このコードはネットから取得しました。コードの意味するところはわかります。
発生している問題・エラーメッセージ
実行したところ、59行目までは
60行目からコピーの状態が変わります。
エラーメッセージはなし
該当のソースコード
excel vba
1Option Explicit 2 3Public mOnTime As Date 4 5Sub TimerProc() 6 Dim ct 7 Dim serial As Long 8 9 Range("c7") = Now 10 Range("B7") = Now 11 12 ct = Cells(7, 1) 13 ct = ct + 1 14 Cells(7 + ct, 1) = ct 15 16 Cells(7 + ct, 2) = Cells(7, 2) 17 Cells(7 + ct, 3) = Cells(7, 3) 18 Cells(7 + ct, 4) = Cells(7, 4) 19 20 Cells(7, 1) = ct 21End Sub 22 23 24Sub OnTimeStart() 25 Dim serial 26 Call TimerProc 27 28 mOnTime = Time() + TimeSerial(0, 0, 1) 29 Call Application.OnTime(mOnTime, "OnTimeStart") 30End Sub 31 32Sub OnTimeStop() 33 '同一のprocedureとEarliestTimeがないとエラーになる 34 On Error Resume Next 35 Call Application.OnTime(mOnTime, "OnTimeStart", , False) 36End Sub 37 38
試したこと
セルb7の書式を、セルの書式設定 ユーザ定義 mmdd hhmmss にしていますが、標準に戻しても同じです。。
補足情報(FW/ツールのバージョンなど)
excel2021、windows10pro
添付画像は状況が変化する箇所 529.jpg
コピーを開始する行付近 529b.jpg
あなたの回答
tips
プレビュー