A列のセルの値が変更されたら同じ行のB列のセルへ日付をセットするには?

Question 85.4 Excel VBA Borad (掲示板)より Previous Next
Excelの変更履歴よりも便利な方法を模索しています。 例として… 下図のような表があるとして…

A4セルの 「おやつ」 が 「おかし」 に変更となった場合
更新があった行の変更日を自動で当日の日付に変更したいのですが、関数でそれは可能なのでしょうか?

関数では無理だけど、VBAでなら可能だという場合でもいいです。
何かしらのアドバイスを戴けたらと思います。よろしくお願いします。
Answer   2007.10.13 永井善王
「おやつ」が「おかし」というのは例示で、セルの値が変更されたらですね。 下記コードは、表のあるワークシートのコード画面に作成します。
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 Then
        MsgBox Range("B" & Target.Row).Value
        Range("B" & Target.Row).Value = Date
    End If
End Sub
Answer   2007.10.28 井川はるき
複数セルをまとめて変更した場合に対応させると、
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Rng As Excel.Range
    Dim c As Excel.Range
    '変更に反応させるセル範囲
    Set Rng = Me.UsedRange.Columns.Item(1)
    With Rng
        Set Rng = .Resize(.Rows.Count - 1).Offset(1)
    End With
    If Me.Application.Intersect(Rng, Target) Is Nothing Then
        Set Rng = Nothing: Exit Sub
    End If
    Me.Application.EnableEvents = False
    For Each c In Rng
        c.Range("B1").Value = Date
    Next
    Me.Application.EnableEvents = True
End Sub
といった感じでしょうか。

 

Excel VBA Macro