方法1 こっちの方が簡単

Excel Objects の ThisWorkbook のオブジェクトボックスで、Workbook を選択。
プロシージャボックから、SheetChange など、イベントを選択して処理を作成。


VBAProject --> Microsoft Excel Objects --> ThisWorkbook

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    MsgBox "セルの内容が変わった"
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    MsgBox "選択セルが変わった"
End Sub

-----------------------------------------

方法2

クラスモジュールの宣言セクションに次のように入力

VBAProject --> クラス モジュール --> Class1

Option Explicit
Public WithEvents MyAppEvents As Application

MyAppEvents は自由に決めた変数です
VBEエディタのコードウインドウのオブジェクトボックスで、MyAppEvents が選択できるようになりますので選択。
プロシージャボックから、SheetSelectionChange など、イベントを選択して処理内容の作成。


VBAProject --> クラス モジュール --> Class1

Private Sub MyAppEvents_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    MsgBox "App Yes"
End Sub

Private Sub MyAppEvents_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    MsgBox "App No"
End Sub


Excel Objects を次のように。変数名は自由

VBAProject --> Microsoft Excel Objects --> ThisWorkbook

Option Explicit
Dim MyEvent As New Class1

Private Sub Workbook_Open()
    Set MyEvent.MyAppEvents = Application
End Sub



Microsoft Office ブログランキングへ