![]() |
SortedListクラスを利用する:Excel VBA入門 |
スポンサードリンク | |
Sub test_A1() Dim DataList As Object Dim x, i As Long Set DataList = CreateObject("System.Collections.SortedList") x = Range("B2:C8").Value For i = LBound(x) To UBound(x) If DataList.Contains(x(i, 1)) = False Then DataList.Add x(i, 1), x(i, 2) End If Next i For i = 0 To DataList.Count - 1 Cells(i + 2, 5).Value = DataList.GetKey(i) Cells(i + 2, 6).Value = DataList.GetByIndex(i) Next i Set DataList = Nothing End Sub |
Sub test_B1() Dim i As Long Dim DataList As Object Dim x Set DataList = CreateObject("System.Collections.SortedList") Randomize For i = 1 To 10 DataList.Item(Rnd()) = i Next i For i = 0 To DataList.Count - 1 Cells(i + 1, 1).Value = DataList.GetByIndex(i) Cells(i + 1, 2).Value = DataList.GetKey(i) Next i Set DataList = Nothing End Sub |
Sub test_B2() Dim i As Long Dim DataList As Object Dim x Set DataList = CreateObject("System.Collections.SortedList") x = Range("A1:A10").Value For i = LBound(x) To UBound(x) DataList.Item(x(i, 1)) = "" Next i For i = 0 To DataList.Count - 1 Cells(i + 1, 3).Value = DataList.GetKey(i) Next i Set DataList = Nothing End Sub |
Sub test_C1() Dim i As Long Dim DataList As Object Dim x Set DataList = CreateObject("System.Collections.SortedList") x = Range("A1:B5").Value For i = LBound(x) To UBound(x) If DataList.Contains(x(i, 1)) = False Then DataList.Add x(i, 1), x(i, 2) End If Next i 'キーと値を追加する DataList.Add "マンゴー", 6 '書き出し Range("D:E").ClearContents For i = 0 To DataList.Count - 1 Cells(i + 1, 4).Value = DataList.GetKey(i) Cells(i + 1, 5).Value = DataList.GetByIndex(i) Next i Set DataList = Nothing End Sub |
Sub test_C1() Dim i As Long Dim DataList As Object Dim x Set DataList = CreateObject("System.Collections.SortedList") x = Range("A1:B5").Value For i = LBound(x) To UBound(x) If DataList.Contains(x(i, 1)) = False Then DataList.Add x(i, 1), x(i, 2) End If Next i 'クリアする DataList.Clear 'キーと値を追加する DataList.Add "マンゴー", 6 '書き出し Range("D:E").ClearContents For i = 0 To DataList.Count - 1 Cells(i + 1, 4).Value = DataList.GetKey(i) Cells(i + 1, 5).Value = DataList.GetByIndex(i) Next i Set DataList = Nothing End Sub |
Sub test_C1() Dim i As Long Dim DataList As Object Dim x Set DataList = CreateObject("System.Collections.SortedList") x = Range("A1:B5").Value For i = LBound(x) To UBound(x) If DataList.Contains(x(i, 1)) = False Then DataList.Add x(i, 1), x(i, 2) End If Next i '要素を削除する DataList.Remove ("りんご") '書き出し Range("D:E").ClearContents For i = 0 To DataList.Count - 1 Cells(i + 1, 4).Value = DataList.GetKey(i) Cells(i + 1, 5).Value = DataList.GetByIndex(i) Next i Set DataList = Nothing End Sub |
スポンサードリンク
PageViewCounter
Since2006/2/27