処理の中で一瞬だけ補助ワークシートを作って破棄する

たとえばワークシート関数のUnique()を使いたい時

Sub testin()
    Dim arr: arr = Array("a", "a", "b", "b", "c")
    With Sheets.Add
        .Range("A1").Resize(UBound(arr) + 1) = WorksheetFunction.Transpose(arr)
        arr = WorksheetFunction.Unique(.Range("A1").CurrentRegion)
        Application.DisplayAlerts = False
        .Delete
        Application.DisplayAlerts = True
    End With
End Sub

二次元配列になっちゃう点だけ注意

目的別コードワークシート操作

Posted by rafavba