VBAの配列に不定数の要素を追加するには?(その4)
空の配列も、未初期化の配列も、エラーハンドリングも使わないで、なぜか、逆説的に、デクレメントやEraseを使う方法です。
Dim a() As String
Dim f As String
ReDim a(0)
f = Dir("*")
Do While Len(f)
a(UBound(a)) = f
ReDim Preserve a(UBound(a) + 1)
f = Dir()
Loop
If UBound(a) Then
ReDim Preserve a(UBound(a) - 1)
Else
Erase a
End If
MsgBox Join(a, vbLf)
これも、要素がないと、後で使うときにエラーになるので、要素が必ず存在するような場合に使うとよいでしょう。
或いは、配列の最後に空の要素を余分に持つというコンベンションにすれば、デクレメントやEraseは不要です。
For k = 0 To UBound(a) - 1
で回す。とか、
Join(a, vbLf)
で末尾にも改行が付いて、これはこれで便利です。
« VBAの配列に不定数の要素を追加するには?(その3) | トップページ | VBScriptやVBAの配列が初期化されているか? 配列の次元数は? »