Share via


ワークシート オブジェクトのイベント

シートのイベントは、既定では有効となっています。 シートのイベント プロシージャを表示するには、シート タブを右クリックし、ショートカット メニューの [ コードの表示 ] をクリックします。 [ プロシージャ ] リスト ボックスから、次のいずれかのイベントを選択します。

ワークシートをアクティブにしたり、ユーザーがワークシート セルを変更したとき、またはピボットテーブルが変更されたときに、ワークシート レベルのイベントが発生します。 次の使用例は、ワークシートが再計算されるときに、列 A から F までの幅を必ず調整します。

Private Sub Worksheet_Calculate() 
    Columns("A:F").AutoFit 
End Sub

イベントを使用して、既定のアプリケーションの動作を代行したり、既定の動作に小さい変更を加えることができます。 次の使用例は、右クリックのイベントがトラップされ、セル範囲 B1:B10 のショートカット メニューに新しいメニュー項目を追加します。

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, _ 
        Cancel As Boolean) 
    For Each icbc In Application.CommandBars("cell").Controls 
        If icbc.Tag = "brccm" Then icbc.Delete 
    Next icbc 
    If Not Application.Intersect(Target, Range("b1:b10")) _ 
            Is Nothing Then 
        With Application.CommandBars("cell").Controls _ 
            .Add(Type:=msoControlButton, before:=6, _ 
                temporary:=True) 
           .Caption = "New Context Menu Item" 
           .OnAction = "MyMacro" 
           .Tag = "brccm" 
        End With 
    End If 
End Sub

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。