人生でいちばんスベッた瞬間

自動的に日付を入力出来ないかと検索すると下記のようなコードを見つけました

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 6 Then Exit Sub
Application.EnableEvents = False
Target.Offset(, 2).Value = Now
Application.EnableEvents = True
End Sub
※F列に入力されるとその行のH列に今日の日付が表示されます

このコードですと、F列に入力されたものをDeleteしても、H列の日付はそのまま残ってしまいます
Deleteとすると日付も消える方法(コード)は可能でしょうか?

エクセルXBA初心者なので、お教えくだされば幸いです

  • 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
  • 今の自分の気分スタンプを選ぼう!
あと4000文字

A 回答 (1件)

Private Sub Worksheet_Change(ByVal Target As Range)


Dim ws As Worksheet
Set ws = Me

' 変更されたセルがF列にあるか確認
If Not Intersect(Target, ws.Range("F:F")) Is Nothing Then
Application.EnableEvents = False ' 無限ループ防止

Dim cell As Range
For Each cell In Target
' F列のセルが空白ならH列をクリア、そうでなければ今日の日付を入力
If IsEmpty(cell.Value) Then
ws.Cells(cell.Row, "H").ClearContents
Else
ws.Cells(cell.Row, "H").Value = Date
End If
Next cell

Application.EnableEvents = True ' イベントを再有効化
End If
End Sub
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報