TOP

VBA-レッスン 11.2。ワークシート イベント (Worksheet Events)

前回のレッスンでは、本全体に関連する出来事について考えました。ここでは、1 つのシートに関連するイベントに焦点を当てます。


Worksheet_SelectionChange (ワークブックを開く)

個々のワークシートに対してイベントベースの命令を実行するには、エディターでワークシートを選択し、Worksheet を選択します。

SelectionChange イベントはデフォルトで追加されます。このイベントは、範囲の内容が変更されるたびに発生します。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

たとえば、次のコードは、選択した 1 つ以上のセルに塗りつぶしの色を追加し、以前に選択した範囲が変更されたときにその範囲から塗りつぶしの色を自動的に削除します。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     Static previous_selection As String

     If previous_selection <> "" Then
         '以前の選択から背景色を削除します。
         Range(previous_selection).Interior.ColorIndex = xlColorIndexNone
     End If

     '現在の選択範囲に背景色を追加します。
     Target.Interior.Color = RGB(181, 244, 0)

     '現在の選択範囲のアドレスを保存します。
     previous_selection = Target.Address
End Sub

Worksheet_Activate (シートアクティブ化イベント)

このイベントは、ワークシートがアクティブ化されたときに発生します。

Private Sub Worksheet_Activate()

End Sub

Worksheet_Deactivate (シート非アクティブ化イベント)

このイベントは、別のワークシートがアクティブ化されたときに発生します。

Private Sub Worksheet_Deactivate()

End Sub

Worksheet_BeforeDoubleClick (セルのダブルクリック イベント)

このイベントは、ワークシートのセルがダブルクリックされると発生します。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

End Sub

Worksheet_BeforeRightClick (右クリック前のイベント)

このイベントは、ワークシート上でマウスを右クリックする前に発生します。

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

End Sub

Worksheet_Calculate (ワークシート計算イベント)

このイベントは、ワークシート内のデータが計算または再計算されるたびに発生します。

Private Sub Worksheet_Calculate()

End Sub

Worksheet_Change (セル内容変更イベント)

このイベントは、指定されたシートのセルの内容が変更されるたびに発生します。

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

Worksheet_FollowHyperlink (リンククリックイベント)

このイベントは、リンク (ハイパーテキスト) がクリックされたときに発生します。

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

End Sub

すべてのイベントを一時的に無効にする

イベントなしでコードを実行するには、次のようにコードの 2 行の間にコードを挿入します。

 Application.EnableEvents = False '=> イベントを無効にする
 'いくつかの指示...
 Application.EnableEvents = True '=> イベントを再度有効にする