こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルマクロで値入力時に時間が自動入力できる

あるセルに値が入力されたら、
他の場所にその時間が入力されるような
エクセルマクロを作りたいと考えています。

インターネットで調べて
下記の様にして1ヵ所だけは入力できるようになりました。

'時間の自動入力
Private Sub Worksheet_Change(ByVal Target As Range)

'Dim k As Long
'i = 9
If Intersect(Target, Range("C8")) Is Nothing Then
Exit Sub
Else
d2 = Time
Range("G8").Value = d2
End If
End Sub

上記のマクロだと
C8固定になってしまうので、
C8~C100で 上から順番に入力したときに
それぞれの入力時に動作するように
変更したいと考えています。

そこで変数を設定し、ifで1つづつ変数を増やす処理を入れる前に
実験的に以下の様に書き換えてみたのですが、
Dim i As Long
i = 9
If Intersect(Target, Cells(9, 3)) Is Nothing Then

動作しませんでした。
インターネット上に載せてくれている方の情報では
range用 みたいなことを書いてあるのを見たのですが、

やはりこの方法ではうまくいかないでしょうか?

よろしくお願いします。

投稿日時 - 2020-10-22 13:26:13

QNo.9814296

困ってます

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

C8~C100に入力したときに入力したC列と同じ行のG列に時刻を出したいのでしたら以下のようにして試してみてください。

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C8:C100")) Is Nothing Then
Exit Sub
Else
d2 = Time
Target.Offset(0, 4).Value = d2
End If
End Sub

投稿日時 - 2020-10-22 13:54:23

お礼

ありがとうございました。
質問後も教えていただいたのと近いものまでは
たどり着きましたが、
うまくいかず。
教えていただいたように修正したらうまくいきました。

投稿日時 - 2020-10-22 14:28:23

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)