ワークシートオブジェクトのイベントは、ワークシートがアクティブ化されるか、ユーザーがセルのコンテンツを変更したときに発生します。

ワークシートのイベントはデフォルトでアクティブ化されていますが、マクロによって非アクティブ化できます。ワークシートのイベントプロシージャを表示するには、VisualBasicエディタを使用します。プロジェクトウィンドウで目的のプロジェクトを選択し、ダブルクリックして目的のワークシートオブジェクトをアクティブにします。ワークシート内のイベントプロシージャは、画面右側のコードウィンドウに表示されます。 [オブジェクト]ドロップダウンで[ワークシート]を選択し、[プロシージャ]ドロップダウンでイベントを選択することで、新しいイベントプロシージャを作成できます。

ワークシート内の次のイベントにマクロを添付できます。

BeforeDoubleClickをアクティブにするBeforeRightClick変更を計算するSelectionChangeを非アクティブにするこの例のeventmacroは、ユーザーがワークシートのショートカットメニューにアクセスできないようにします。手順は、ワークシート独自のモジュールシートに記述する必要があります。

Sheet1:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, _

Cancel As Boolean)

Cancel = True

MsgBox "Shortcut menus are disabled in this worksheet!"

End Sub

この例のeventmacroは、ユーザーがワークシート内の特定の範囲のセルを選択できないようにします。手順は、ワークシート独自のモジュールシートに記述する必要があります。

Sheet1:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

If Not Application.Intersect(Target, Range("A1:A100")) Is Nothing Then

Cells(ActiveCell.Row, 2).Select

MsgBox "You can't select cells in A1:A100!"

End If

End Sub