|
|
| Excel VBA Macro ・ フロー制御 ・ FAQ |
|
A列のセルの値が変更されたら同じ行のB列のセルへ日付をセットするには?
|
|
|
|
Question 85.4 |
Excel VBA Borad (掲示板)より |
 |
 |
|
|
Excelの変更履歴よりも便利な方法を模索しています。 例として… 下図のような表があるとして…

A4セルの 「おやつ」 が 「おかし」 に変更となった場合
更新があった行の変更日を自動で当日の日付に変更したいのですが、関数でそれは可能なのでしょうか?
関数では無理だけど、VBAでなら可能だという場合でもいいです。
何かしらのアドバイスを戴けたらと思います。よろしくお願いします。
|
|
|
「おやつ」が「おかし」というのは例示で、セルの値が変更されたらですね。 下記コードは、表のあるワークシートのコード画面に作成します。
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
|
|
|
複数セルをまとめて変更した場合に対応させると、
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
といった感じでしょうか。
|
|
|
|
| |
|
|