確か以前、問題なく実装した覚えがあるのだが・・。気のせいだったのかも。


どういうことをうやったかというと、


 1. クラスモジュールを配列で定義・内容はデータで、PropertyのGet/Setを定義している

 2. ReDim Preserve で1つづつ要素を追加し、追加するごとに New する

 3. 追加した要素に、ファイルから読み込んだ情報をセットしておく


である。


コードの断片としては


' 1. -------------------

Private clsTempInf() As ClassData_Log

 

' 2. -------------------

miTempCnt = miTempCnt + 1
ReDim Preserve clsTempInf(miTempCnt)
Set clsTempInf(miTempCnt) = New ClassData_Log

' 3. -------------------

Set clsTempInf(miTempCnt) = clsLogic.execAnalyze(sBuf)

てな感じである。


で、後で内容を確認すると、どうも内容がおかしい。よくよく見ると、配列の要素が全て同じ情報になっているのだ。


ステップ実行で確認すると、2.を実行し終えた時点では追加された要素は空である。が、3.の中を見ていくと、最後の要素しか塗り替えていないはずなのに、同時に他の要素の内容が塗り変わってしまっている、という事象であった。


なんかボケたことをやっているのかもしれないが、急いでいたのでやむなく別の方法、配列に溜めるのではなくデータベースに出力する方法で逃げることにした。


自分のコードバグなのか、言語上の制約なのか、など、そのうち他のケースも試して確認したいと思う。