匿名質問者

エクセルで、セルが更新された時に更新時間を記録するマクロを組んだのですが、うまくいきません。


Sub 時刻更新()
With Worksheets("Sheet1")
If .Cells(1, 2) <> "" Then Exit Sub
.Cells(1, 1).Calculate
End With
Application.OnTime Now + TimeValue("00:00:01"), "時刻更新"
End Sub

というマクロを組み、
(1, 2)のセルに何か文字が入力された時に(1, 1)のNOW関数が止まって、
その瞬間の時刻が(1, 1)に記載されるようにしました。

セルが1つだけの時はうまくいったのですが、
セルが2つになると、すべての時計が同時に更新されてしまいます。

たとえば、(1, 1)と(1, 2)のセットに加えて、
(2, 1)にもNOW関数を置いて、
(2, 2)に入力があった際には(2, 1)にその更新時間を記載したいのですが、
実際は(1, 2)あるいは(2, 2)のどちらかに入力があると、
(1, 1)(2, 1)どちらの時計も同時に更新されてしまいます。

どなたか解決策を教えていただけますでしょうか。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2014/06/12 10:05:04

回答1件)

匿名回答1号 No.1

再計算の方法が自動になってませんか?
マクロで手動になるようにしておくとよいかもしれません。
(Application.Calculation = xlCalculationManual)

もしくはセルのアドレスや関数名を間違えているか。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません