🧸

配列の要素から、重複した要素を抜いて、一意の配列を作成するマクロ

2024/11/28に公開

はじめに

配列の要素から重複した要素を抜いて、新たに一意の要素の配列を作成する処理が必要になったため、マクロを作成しました。

マクロのソースコード

Sub RemoveDuplicates()
    Dim originalArray() As Variant
    Dim uniqueArray() As Variant
    Dim dict As Object
    Dim i As Long
    Dim key As Variant
    
    ' サンプルの配列を定義
    originalArray = Array("遠藤さくら", "井上和", "遠藤さくら", "佐藤楓", "一ノ瀬美空", "佐藤楓", "井上和", "金川紗耶")
    
    ' Dictionaryオブジェクトを作成
    Set dict = CreateObject("Scripting.Dictionary")
    
    ' 配列の要素をDictionaryに追加(重複は自動的に除外される)
    For i = LBound(originalArray) To UBound(originalArray)
        key = originalArray(i)
        If Not dict.exists(key) Then
            dict.Add key, Nothing
        End If
    Next i
    
    ' Dictionaryのキーをユニークな要素として配列に変換
    uniqueArray = dict.keys
    
    ' 結果を表示(例としてイミディエイトウィンドウに出力)
    For i = LBound(uniqueArray) To UBound(uniqueArray)
        Debug.Print uniqueArray(i)
    Next i
End Sub

実行結果

最後に

ぜひ活用していただけると幸いです。

Discussion