確か以前、問題なく実装した覚えがあるのだが・・。気のせいだったのかも。
どういうことをうやったかというと、
1. クラスモジュールを配列で定義・内容はデータで、PropertyのGet/Setを定義している
2. ReDim Preserve で1つづつ要素を追加し、追加するごとに New する3. 追加した要素に、ファイルから読み込んだ情報をセットしておく
である。
コードの断片としては
' 1. -------------------
Private clsTempInf() As ClassData_Log
' 2. -------------------
miTempCnt = miTempCnt + 1ReDim Preserve clsTempInf(miTempCnt)
Set clsTempInf(miTempCnt) = New ClassData_Log
' 3. -------------------
Set clsTempInf(miTempCnt) = clsLogic.execAnalyze(sBuf)てな感じである。
で、後で内容を確認すると、どうも内容がおかしい。よくよく見ると、配列の要素が全て同じ情報になっているのだ。
ステップ実行で確認すると、2.を実行し終えた時点では追加された要素は空である。が、3.の中を見ていくと、最後の要素しか塗り替えていないはずなのに、同時に他の要素の内容が塗り変わってしまっている、という事象であった。
なんかボケたことをやっているのかもしれないが、急いでいたのでやむなく別の方法、配列に溜めるのではなくデータベースに出力する方法で逃げることにした。
自分のコードバグなのか、言語上の制約なのか、など、そのうち他のケースも試して確認したいと思う。