メモとして残します。
Sheetモジュールに下記を追記
■やり方
Private Sub Worksheet_Change(ByVal Target As Range)
    ' I列以外のchangeは以降処理しないようにする。
    If Intersect(Target, Range("I1:I" & Rows.Count)) Is Nothing Then
        Exit Sub
    End If
    '処理・・・・・・・・
    'Target.Cells.Item(1) '変更されたセルのオブジェクト
End Sub
■さいごに
あくまでシート全体での検知を第一段階でやる必要があるため、複数列やる場合は Worksheet_Change 内でさらに分岐してやる必要があります。
なので、疑似的なハンドリングになりますね。
