連想配列とは、配列の部屋(要素)を番号(位置)で指定するのではなく、任意の文字列で要素を指定できるような配列です。言葉でいうと難しいですけど、Excelユーザーだったらお馴染みのVLOOKUP関数です。Excelのマクロで連想配列を使うのは、重複しないリスト(ユニークリスト)を作るのが主な目的ですが、それすらも現在のExcelでは簡単にできてしまいます。Excelマクロで連想配列を使う機会は、ほとんどないと言ってもいいでしょう。まぁ、使ってもいいですけどね。
↓左上にある
をクリックすると、チャンネル登録できます。ぜひ、チャンネル登録をお願いします。あなたのチャンネル登録が、私のやる気を維持向上してくれます(笑)
Sub Macro1() ''Dictionary
Dim i As Long, A
With CreateObject("Scripting.Dictionary")
On Error Resume Next
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
.Add Cells(i, 1).Value, Cells(i, 1).Value
Next i
A = .keys
Range("E2").Resize(UBound(A) + 1) = WorksheetFunction.Transpose(A)
End With
End Sub
Sub Macro2() ''Collection
Dim i As Long, A As New Collection
On Error Resume Next
For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
A.Add Cells(i, 1).Value, Cells(i, 1).Value
Next i
For i = 1 To A.Count
Cells(i + 1, 5) = A(i)
Next i
End Sub
Sub Macro3() ''[重複の削除]機能
Range("A:A").Copy Range("E1")
Range("E1").CurrentRegion.RemoveDuplicates 1, xlYes
End Sub
Sub Macro4() ''UNIQUE関数を使う
Dim A
A = WorksheetFunction.Unique(Range(Range("A2"), Cells(Rows.Count, 1).End(xlUp)))
Range("E2").Resize(UBound(A)) = A
End Sub
Sub Macro5() ''UNIQUE関数をセルに入れちゃう
Range("E2").Formula2 = "=UNIQUE(A2:A1001)"
With Range("E2#")
.Value = .Value
End With
End Sub
Sub 名前ごとにシート分割()
Dim i As Long
For i = 2 To Cells(Rows.Count, 5).End(xlUp).Row
With Sheets("Sheet2")
.Range("A1").AutoFilter 1, .Cells(i, 5)
.Range("A1").CurrentRegion.Copy Sheets.Add.Range("A1")
ActiveSheet.Name = .Cells(i, 5)
End With
Next i
End Sub
動画で使用したブックのダウンロード(20200714b.xlsm)
Office TANAKAのYouTubeチャンネルはこちら(動画一覧ページ)