Quantcast
Channel: dictionaryタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 99

VBA / Dictionaryの(Keyではなく)Item値でソートする

$
0
0
VBA / Dictionaryの(Keyではなく)Item値でソートする ・やや力技だが、Item値でソートする例 ・DictionaryのKeyとItemを、順序を入れ替えて、ArrayListに格納している ・KeyとItemは適当なデリミタ(ここではΩ)で区切っている ・ArrayListのSort機能で並び替えている。 ・Item値がきれいに並ぶようにFormatで形を揃ている点注意 ・並び替えた後、デリミタでSplitして、別のDictionaryに戻している sample.xlsm Option Explicit Sub sample_dictionary_sort_by_items() '参照設定:Microsoft Scripting Runtime Dim dict As Scripting.Dictionary 'Set dict = CreateObject("Scripting.Dictionary") Set dict = New Scripting.Dictionary dict.Add "a", Rnd() dict.Add "b", Rnd() dict.Add "c", Rnd() dict.Add "d", Rnd() dict.Add "e", Rnd() Dim arr Set arr = CreateObject("System.Collections.ArrayList") Dim ky For Each ky In dict.Keys arr.Add Format(dict.Item(ky), "0.00000") & "Ω" & ky Next arr.Sort 'arr.Reverse Dim a1 For Each a1 In arr Debug.Print a1 Next Dim dict2 As Scripting.Dictionary Set dict2 = New Scripting.Dictionary Dim o() As String Dim a2 For Each a2 In arr o = Split(a2, "Ω") dict2.Add o(1), CDbl(o(0)) Next For Each ky In dict2.Keys Debug.Print ky & "_" & dict2.Item(ky) Next End Sub

Viewing all articles
Browse latest Browse all 99

Trending Articles