前提
ここでは以下のテーブルの列が変更された際に処理を行います。
シート名 :サンプル
テーブル名:tblSample
列名 :section
サンプルプログラム
セルが変更された際に実行されるイベント「Workbook_SheetChange」を利用します。
'変数の宣言を必須
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim tbl As ListObject
Dim targetColumnAdress As String
'各種機能を無効化
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.DisplayAlerts = False
Application.Calculation = xlCalculationManual
'テーブルを取得
Set tbl = Sheets("サンプル").ListObjects("tblSample")
'列「section」の範囲のアドレス
targetColumnAdress = tbl.ListColumns("section").DataBodyRange.Address
'変更されたセルが列「section」の範囲の場合のみ処理継続
If Not Intersect(Target, Range(targetColumnAdress)) Is Nothing Then
'''''''''''''''''''''''''''''''''''
'変更時に行いたい処理を記載する
'''''''''''''''''''''''''''''''''''
MsgBox "セル『" & Target.Address & "』の値が変更されました"
End If
'各種機能を有効化
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.DisplayAlerts = True
Application.Calculation = xlCalculationAutomatic
End Sub