• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルでデータ入力された日付と時間を自動入力する)

エクセルで日付と時間を自動入力する方法

このQ&Aのポイント
  • エクセルでデータ入力された日付と時間を自動的に入力する方法について教えてください。
  • 特定のセルに入力した日付と時間が、他のセルに自動的に反映されるようにしたいです。
  • VBAを使用して、エクセルの特定のセルに入力した日付と時間を他のセルに自動的に入力する方法を教えてください。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1734/2604)
回答No.3

元は入力が一列目対象でしたが、それを元のコードのまま一行目を対象に変更したいのでしたら Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim r As Range Application.EnableEvents = False For Each r In Target If r.Row = 1 Then r.Offset(1, 0).Value = Format(Now, “yyyy/mm/dd”“ ”“hh:mm:ss”) End If Next r Application.EnableEvents = True End Sub For Each~Nextが不要な気もしますが… もし不要でしたら Private Sub Worksheet_Change(ByVal Target As Excel.Range) Application.EnableEvents = False If Target.Row = 1 Then Target.Offset(1, 0).Value = Format(Now, "yyyy/mm/dd"" ""hh:mm:ss") End If Application.EnableEvents = True End Sub

simizuchi
質問者

お礼

ありがとうございます。 できました。

その他の回答 (4)

  • kkkkkm
  • ベストアンサー率66% (1734/2604)
回答No.5

No.3の補足です。 現状だとデータを削除した時にも更新日付が変更されます。 もし、削除したときは変更したくないのでしたら 前者だと If r.Row = 1 Then を If r.Row = 1 And r.Value <> "" Then 後者だと If Target.Row = 1 Then を If Target.Row = 1 And Target.Value <> "" Then に変更してください。

simizuchi
質問者

お礼

ありがとうございます。 完璧です。

  • hi-ball
  • ベストアンサー率0% (0/1)
回答No.4

こんな感じどうでしょう? Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Integer For c = 1 To 3 If Target.row = 1 And Target.Column = c Then Cells(Target.row, Target.Column).Offset(1).Value = Format(Now, "yyyy/mm/dd"" ""hh:mm:ss") End If Next End Sub

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

Sheet1限定としてよいだろう、そのシートモジュールに Private Sub Worksheet_Change(ByVal Target As Range) Target.Offset(0, 1) = Now End Sub でどうか?これで正しいとは思わないが。こんな質問のニーズは想像しにくいから。 Targetセル(A1,B1,C1など、入力するセル)の場所に何か限定でもあると思うが、質問が不明確ではないか? 書式に注文はあるか? など後続の回答のために、補足しておいたらどうかな?

simizuchi
質問者

補足

A1に入力したらA2に入力日付を自動表示(更新含む)させる B1に入力したらB2に入力日付を自動表示(更新含む)させる 以下、CDE・・・というVBAです。 書式に注文はありません。

  • hi-ball
  • ベストアンサー率0% (0/1)
回答No.1

A1を入力したらA2に更新日付なら下記みたいな感じです。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.row = 1 And Target.Column = 1 Then Cells(Target.row, Target.Column).Offset(1).Value = Format(Now, "yyyy/mm/dd"" ""hh:mm:ss") End If End Sub

simizuchi
質問者

補足

すいません。 これだとA1に入力したらA2に反映はされますが、 B1に入力したらB2に反映されません。 初心者ですいません。

関連するQ&A

専門家に質問してみよう