ExcelVBAにてDictionaryからデータを抽出し、
シートに張り付ける処理を作成しています。
大量のデータを処理する際に、
「文字列の領域が不足しています」という旨のエラーとともに止まってしいます。
いろいろ処理を削っていくと、最後は①のようにディクショナリから値を取得するだけで消費メモリがどんどん増えていくところまでわかりました。
①の代わりに②の処理にすると、メモリは一定のままでした。
キー値のつくりかたに問題があるのでしょうか?
(メモリ消費量はタスクマネージャで確認しています)
#ソースのイメージ
#varValueはVariant型の2次元配列で、シートの特定範囲の値を丸々保持
#dicDataは文字列(150文字程度)のキーに、文字列(6文字)の値を保持した"Scripting.Dictionary"
For iii = 1 To 10000
Dim key as String
key = varValue(iii,1) & varvalue(iii,3) & varvalue(iii,5) '実際には10個程度の変数を連結
Dim data as String
data = dicData.item(key) '①メモリがどんどん消費されていく
' data = dicData.item("固定値") '②メモリ消費量は一定
Next iii

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/13 01:41
2018/04/13 12:55