- ベストアンサー
【Excel】セルの値を変更した時間を記録したい
excel2002を使用している初心者です A1セルの値を変更したらその時間をすべてB列に順番に記録していく方法を考えています。 参考書によると If Target.Value = Range("A1").Value Then と ActiveCell.Value = Format$(Now, "hh:mm") 使うば良さそうだとのことです、 具体的にどのようにつなげてよいのか、またどんな風に宣言をしていけばよいのかなど、教えていただけると助かります
- みんなの回答 (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)
ワークシートへのマクロを貼り付けですればよいです。 エクセル起動後、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
補足
早速の回答ありがとうございます。 上記のコードですとA列の行番号と同じB列の行番号に時間を記録することはできますが、今回値が変化するのはA1セルのみです。 A1の値を変更した時間をB1、B2、B3と連続で記録したいと思います。 よろしくお願いします。