RemoveDuplicatesで動的配列を使用する


特定の列を指定するのではなく、全列で重複を削除するケース
単にColumns:=arrで失敗したので対処方法を調査。
CvarでVariantをVariantに変換。。。
うまくいったみたいです。

'選択範囲の全列で重複を削除
Sub Selection_RemoveDuplicates()

    With Selection

        Dim i As Long
        Dim arr As Variant

        ReDim arr(.Columns.Count - 1)
        For i = 0 To UBound(arr)
            arr(i) = i + 1
        Next
        'ヘッダーはYesにしているがケースバイケースならGuessでも。
        .RemoveDuplicates Columns:=CVar(arr), Header:=xlYes

    End With

End Sub