「Worksheet_Change」
セルの値が変更された時に発生するイベントです。

zaiko_vba1

こんな在庫管理表エクセルを用意してみました。
在庫データ参照:エルシーラブコスメティック



もしこのような商品を管理していて、在庫数をチェックする担当になったら


金額や商品は、一度入力すれば、変更することはほとんどないと思います。
しかし、出荷数は毎日、頻繁に変化するのではないでしょうか??


そんな時に、更新日を自動で入力するVBAを作る!
出荷数を変更したら、更新日に自動で現在の日付+時刻を入力するように
VBAを設定したいと思います。

まずは、出荷数の列、即ちF列の値が変化したらというプログラムは
’セルの値が変化したときのイベント
Private Sub Worksheet_Change(ByVal Target As Range)
    '変更されたセルがF列で4行以上の場合
    If Target.Column = Range("F:F").Column And Target.Row >= 4 Then
        'セルに現在時刻を入力
        Cells(Target.Row, Range("H1").Column).Value = Now
    End If
End Sub
Targetには、イベントが動作した時点でのセルの情報が入ってきます。
Target.Column  ・・・ そのセルの列番号を取得
Target.Row  ・・・ そのセルの行番号を取得
Target.Value  ・・・ そのセルの値を取得



「Now関数は現在時刻の取得」
エクセルでも同じですね!


指定されたセルの値が変わったら、
そのセルの行の更新日セルに現在時刻をセットする。
というプログラムになっています。


VBAコードをコピペするときは、
「F:F」や「4」など直で指定した箇所をご自分のレイアウトに合わせて使ってください。


是非お仕事に活用させてください!


福岡でAccess、ExcelVBAでお困りなら
AsympLineへご相談ください。
法人様、個人様問いません。
プログラムの解析の上でのアドバイスを行います。