' fncCountSubstringOccurrences
' この関数は指定されたExcel範囲内で特定の部分文字列が含まれるセルの数をカウントします。
' 結合されたセルも個別のセルとしてカウントされます。
' 引数:
' rngSearchRange - 検索を行う範囲を指定するRangeオブジェクト。
' strSubstring - カウントする対象の部分文字列。
' 戻り値:
' Integer - 指定された部分文字列を含むセルの総数。
Function fncCountSubstringOccurrences(ByVal rngSearchRange As Range, ByVal strSubstring As String) As Integer
Dim rngCell As Range ' 検索範囲内の個々のセルを表す
Dim intCount As Integer ' 部分文字列が見つかったセルの数をカウント
intCount = 0 ' カウンターの初期化
' 指定された範囲内の各セルに対してループ処理
For Each rngCell In rngSearchRange
' 結合されたセルの場合
If rngCell.MergeCells Then
' 結合されたセルの最初のセルであるかをチェック
If rngCell.Address = rngCell.MergeArea(1).Address Then
' 部分文字列が含まれているかチェック
If InStr(rngCell.Value, strSubstring) > 0 Then
intCount = intCount + 1 ' 部分文字列が見つかったらカウントアップ
End If
End If
Else ' 結合されていないセルの場合
' 部分文字列が含まれているかチェック
If InStr(rngCell.Value, strSubstring) > 0 Then
intCount = intCount + 1 ' 部分文字列が見つかったらカウントアップ
End If
End If
Next rngCell
fncCountSubstringOccurrences = intCount ' 関数の戻り値としてカウント数を返す
End Function
コメント