Function fncCountColoredMergedCells(rngTarget As Range, Optional lngColor As Long = -1) As Long
Dim rngCell As Range '対象となるセルを格納
Dim lngCounter As Long '色付きセルのカウント数を格納
Dim dicMerged As Object '結合セルを格納するための辞書
Set dicMerged = CreateObject("Scripting.Dictionary")
'カウンターを初期化
lngCounter = 0
'指定された範囲内でループ
For Each rngCell In rngTarget
'結合されたセルかどうかをチェック
If rngCell.MergeCells Then
'結合されたセルが既にカウントされていないか確認
If Not dicMerged.Exists(rngCell.MergeArea.Address) Then
dicMerged.Add rngCell.MergeArea.Address, True
'色が指定されているか、任意の色が許可されている場合
If rngCell.MergeArea.Interior.Color = lngColor Or lngColor = -1 Then
lngCounter = lngCounter + 1
End If
End If
Else
'色が指定されているか、任意の色が許可されている場合
If rngCell.Interior.Color = lngColor Or lngColor = -1 Then
lngCounter = lngCounter + 1
End If
End If
Next rngCell
'カウント数を返す
fncCountColoredMergedCells = lngCounter
End Function