VBAで重複するコンテンツの数を数える方法

VBAで辞書(Dictionary)を利用して、同じ内容の個数をカウントできます。以下がコード例です。

Sub CountDuplicates()
    Dim dataRange As Range
    Dim cell As Range
    Dim dict As Object
    Set dict = CreateObject("Scripting.Dictionary")
    
    ' 设置数据范围
    Set dataRange = Range("A1:A10")
    
    ' 遍历数据范围中的每个单元格
    For Each cell In dataRange
        ' 判断单元格中的值是否已存在于字典中
        If dict.Exists(cell.Value) Then
            ' 如果存在,则在字典中对应的值加1
            dict(cell.Value) = dict(cell.Value) + 1
        Else
            ' 如果不存在,则将单元格的值作为键,初始值设为1
            dict.Add cell.Value, 1
        End If
    Next cell
    
    ' 输出结果
    For Each key In dict.Keys
        MsgBox key & " 的个数为 " & dict(key)
    Next key
End Sub

上記のコードでは、統計対象のデータはA1:A10の範囲にあるものと仮定しています。まず、辞書オブジェクトを作成し、データ範囲内の各セルを反復処理して、セルの値を辞書キーとして追加します。キーが既にあれば、対応する値を 1 増やします。キーがなければ、キーを追加し、初期値を 1 に設定します。最後に、辞書のキーを反復処理して、各キーに対応する値、つまり同じコンテンツの数を表示します。

bannerAds