1. Welcome to VBAexpress
2. Attaching a workbook with the macros and data saves people the problem of guessing and recreating what they think your data might look like
3. I thought your approach was a little complicated just to create a unique items array. Some people prefer Advanced Filter, but I usually use a Collection
Option Explicit
Private Sub cmdSummary_Click()
Dim A() As String
Dim C As Collection
Dim R As Range
Dim I As Long
Set C = New Collection
On Error Resume Next
For Each R In Worksheets("Sheet1").Range("D1:D10").Cells
C.Add R.Value, CStr(R.Value)
Next
On Error GoTo 0
ReDim A(1 To C.Count)
For I = 1 To C.Count
A(I) = C.Item(I)
Next I
For I = LBound(A) To UBound(A)
MsgBox A(I)
Next I
MsgBox "Done" 'Pause during testing to check values
End Sub