イベントを処理するときは、次のChange
3 つのシナリオを考慮する必要があります。
Target
Unmerged
細胞のみからなる
Target
単一のMerged
範囲のみで構成される
Target
1 つ以上のMerged
範囲と 0 個以上のUnmerged
セルで構成される
Range.MergeCells
プロパティは、次の可能性を明らかにします。
Range.MergeCells = FALSE
Range.MergeCells = TRUE
Range.MergeCells = NULL
範囲内の各セルを個別に調べて、どれがマージされているかを確認Range.MergeCells = NULL
する必要がある場合Target
このようなもの
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cl As Range
If IsNull(Target.MergeCells) Then
'Changed Range contains one or more Merged cells and other cells
For Each cl In Target.Cells
If cl.MergeCells Then
' only consider top left cell of a merged range
If cl.Address = cl.MergeArea.Cells(1, 1).Address Then
If cl = "" Then
MsgBox "Merged Cell Deleted " & cl.MergeArea.Address
End If
End If
End If
Next
Else
If Target.MergeCells Then
' Changed Range is a single Merged cells
If Target.Cells(1, 1) = "" Then
MsgBox "Merged Cell Deleted " & Target.Address
End If
Else
'Changed Range is Unmerged cells only
End If
End If
End Sub