« VBScriptやVBAの配列に不定数の要素を追加するには? | トップページ | VBAの配列に不定数の要素を追加するには?(その3) »

2008年5月19日 (月)

VBScriptやVBAの配列に不定数の要素を追加するには?(その2)

Scripting.Dictionaryを配列の代わりに使います。

Dim a As Object
Dim f As String
Set a = CreateObject("Scripting.Dictionary")
f = Dir("*")
Do While Len(f)
  a.Add a.Count, f
'または、好みで、
'  a.Item(a.Count) = f
  f = Dir()
Loop
MsgBox Join(a.Items(), vbLf)

push()メソッド同様に1行で書けます。

配列の代わりにScripting.Dictionaryを使うときのポイントは、
Dictionaryのキーにインデックス(0~)を使います。
配列でUBound(a)+1と書く代わりにDictionaryでa.Countを使います。
配列でa(k)と書く代わりに、Dictionaryでa.Item(k)と書きます。
Dictionaryがa.Items()で配列になります。
For Each k In aで取り出せるのはキー。a.Item(k)で値。
For Each x In a.Items()で値。

« VBScriptやVBAの配列に不定数の要素を追加するには? | トップページ | VBAの配列に不定数の要素を追加するには?(その3) »