• ベストアンサー

【Excel】セルの値を変更した時間を記録したい

excel2002を使用している初心者です A1セルの値を変更したらその時間をすべてB列に順番に記録していく方法を考えています。 参考書によると If Target.Value = Range("A1").Value Then と ActiveCell.Value = Format$(Now, "hh:mm") 使うば良さそうだとのことです、 具体的にどのようにつなげてよいのか、またどんな風に宣言をしていけばよいのかなど、教えていただけると助かります

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは こういうことかな? '<シートモジュール> Private Sub Worksheet_Change(ByVal Target As Range) Dim rnum As Long With Target If .Address <> "$A$1" Then Exit Sub If IsEmpty(Range("B65536").End(xlUp)) Then   rnum = 0 Else   rnum = Range("B65536").End(xlUp).Row End If Application.EnableEvents = False   .Offset(rnum, 1).Value = Format$(Now, "hh:mm") Application.EnableEvents = True End With End Sub ただし、B1 に空白文字(" ")があっても、そこには書き込まれませんので、完全に空の状態にしてください。

その他の回答 (1)

  • OsieteG00
  • ベストアンサー率35% (777/2173)
回答No.1

ワークシートへのマクロを貼り付けですればよいです。 エクセル起動後、Alt+F11をおしてVBAエディターを起動してください。 そして、実行したいワークシートを選択して、対象をWorksheet、イベントをChangeとして、以下のコードを貼り付けて下さい。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then Target.Offset(0, 1).Value = Format$(Now, "hh:mm") End If End Sub

kuoka
質問者

補足

早速の回答ありがとうございます。 上記のコードですとA列の行番号と同じB列の行番号に時間を記録することはできますが、今回値が変化するのはA1セルのみです。 A1の値を変更した時間をB1、B2、B3と連続で記録したいと思います。 よろしくお願いします。

関連するQ&A