【Excel VBA】入力した日時を自動表示

最終更新日:

概要

あるセルに文字などを入力した際に、入力した日時が表示されるようにしたい。
今回はA列に入力すると、右隣に日時が自動で出力されます。

サンプル

動作させたいシートに対して、下記を記載します。
サンプル1、サンプル2とありますが、どちらか好きな方をカスタマイズしてください。

サンプル1

Private Sub Worksheet_Change(ByVal Target As Range)
 For Each rTarget In Target
  If rTarget.Value <> "" And rTarget.Column = 1 Then rTarget.Offset(, 1).Value = Now
 Next
End Sub

サンプル2

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim l As Long

 If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
 If Target.Count > 1 Then
  For l = 1 To Target.Count
   If Target(l).Value <> "" And Target(l).Column = 1 Then Target(l).Offset(, 1).Value = Now
  Next
 Else
  If Target.Value <> "" Then Target.Offset(, 1).Value = Now
 End If
End Sub

気になる点

既にA列に文字がいくらか入力されていて、
行削除などを行うと、その際に選択していた行の日付が更新される。

行削除や削除後に上シフトしなければ問題はない。