Microsoft ExcelでVBAを使用してワークシートのイベント
ワークシートオブジェクトのイベントは、ワークシートがアクティブ化されるか、ユーザーがセルのコンテンツを変更したときに発生します。
ワークシートのイベントはデフォルトでアクティブ化されていますが、マクロによって非アクティブ化できます。ワークシートのイベントプロシージャを表示するには、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