ここではあるワークシートがアクティブになった時、あるいはシート内の内容が変更された時など、シート内のイベントによって発生するイベント処理について解説します。

① 目的のシートを選択します。
② オブジェクトボックスから「Worksheet」を選択します。
③ ぷろしーじゃボックスから希望のイベントを選択します。
これで空のイベントプロシージャが作成されます。
パスワードを必要とするイベント処理
Sheet3 を開こうとした時「パスワード」を求められ、パスワードが正しければ Sheet3 は開かれますが、正しくない場合は Sheet1 に戻ってしまうイベント処理です。
「Worksheet_Activate」プロシージャを作成します。
Private Sub Worksheet_Activate()
Dim pass As String
pass = InputBox(“パスワードを入力してください”)
If pass = “112233” Then
MsgBox “Password OK”
Else
MsgBox “Passwor エラー”
Worksheets(“Sheet1”).Activate
End If
End Sub
Sheet3 をアクティブ状態にしようとすると

パスワードを求められます。
正しけれは「Password OK」のメッセージ後にシート3がアクティブになります。
間違っていれば「Passwordエラー」のメッセージが出た後、シート1に戻ります。
デーが変更された時のイベント処理
ワークシート内のデータ(内容)が変更された時に発生するイベント処理です。
「営業計画書提出状況」で営業担当者から翌年度の営業計画書が提出された時点で「計画提出」欄に〇を入れます。
〇が入ったら「提出日」にその日時が自動入力されるイベント処理です。

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 And Target.Value = “〇” Then
Target.Offset(0, 1).Value = Now
End If
End Sub
Worksheet_Changeプロシージャには、変更が加えられたセルが「引数Target」として与えられます。
よってこの Target に対する処理を記述することになります。
変更されるセル範囲の列が D列で、ここに営業計画書が提出された時に「〇」を入れることにより、その変更されたセルの一つ右横(Target.Offset(0,1)」つまりE列にその年月日と時刻が自動で入力されます。
