| 
    
     |  | >これは問題ないと思いますが・・・おそらく ありがとうございます。
 
 
 >他に気になることがあります。
 >
 >「A.a(0)」という変数名ですけど、「ドット」は使えないと思います。
 >実際ドットを入れて宣言してみたら、VBEに叱られてしまいましたけど、そんなことありませんでした?
 
 口足らずな私ですいません。。。
 現在、このように宣言しています。
 
 Private Type KOUZOUTAI
 a() As String
 b As Integer
 End Type
 
 Private a As KOUZOUTAI
 
 
 >
 >>ReDim A.a(0)
 >>
 >>For i = 0 To 10
 >>
 >>  If XXX Then
 >>    ReDim Preserve A.a(i)
 >>    ---処理開始---
 >>      :
 >>    ---処理終了---
 >>  End if
 >>
 >>  Erase A.a()
 >>Next
 >
 >これだと、例えば、2.4.6.8.10がIf文で通ったとしたら、
 >A.a(2),A.a(4)・・・・・・に値が入って、A.a(0),A.a(1)・・・・・・が空になるんじゃないかと思うんですが、添え字用の変数を別にする必要がないですか?
 
 →おっしゃるとおり。
 何かおかしいと思てたら、掲載したサンプルロジックが間違えてました。
 すいません、間違いでした。↓
 
 誤:For i = 0 To 10
 正:Do While True
 
 でした。つまり、グルグルLoopして条件に合えば、Redimにより拡張します。
 
 
 >それと、EraseをFor Next文の中に書いてますが、これだと、いちいち解放されてしまうので、外に出さなくてはいけないんじゃないかと思いますが・・・どないでしょう?
 →おっしゃるとおり。確かにそうなんですが…何を隠そう、この配列を毎回Loop毎に、
 使い回ししてるんです。だから、毎Loop毎にEraceしています。
 
 変則的なロジックですいません。。。
 
 
 まとめると…
 
 Private Type KOUZOUTAI
 a() As String
 b As Integer
 End Type
 
 Private a As KOUZOUTAI
 
 Dim i As Integer
 
 ReDim A.a(0)
 
 Do While True
 
 If XXX Then
 ReDim Preserve A.a(i)
 ---処理開始---
 :  ←ここで構造体Aにデータを格納
 :  ←ここで構造体Aのデータをセルに出力
 ---処理終了---
 End if
 
 Erase A.a()
 Loop
 
 |  |