VBAで高速処理に欠かせない配列処理
ExcelVBAマクロは動作が遅いと言われがちです。それは大きな間違いです。
大体そういう方は、大量のデータをワークシート内のセルで、検索、代入、計算しており、
その処理方法が間違いです。
一次元配列もしくは二次元配列にデータを格納してから処理をすることで、
速度の改善が見込めます。
ただ、配列と言っても静的配列、動的配列、さらにVariant型に配列を代入といろんな考えがあります。
配列の宣言
Public Sub sample()
'■静的配列
'配列のサイズは固定される、柔軟性がない
Dim arr1(1 To 5) As Variant
'■動的配列
'配列のサイズは固定されない、、柔軟性はある
Dim arr2() As Variant
ReDim arr(1 To 5)
'■Variant型に配列を代入
'配列のサイズは固定されない、、柔軟性はある、ただし、型を固定するわけではないので注意が必要
Dim arr3 As Variant
ReDim arr(1 To 5)
End Sub
まとめ
上記はあくまでも一例。詳細は各記事参照して下さい。
- 静的配列
サイズが事前に固定されている場合や、処理速度を優先する場合。 - 動的配列
サイズが不明、または変更が必要な場合。 - Variantに配列を格納
サイズが不明や柔軟な処理が求められる場合
もしくは関数の引数・戻り値で配列を扱いたい場合。
安全度
静的配列 > 動的配列 > Variantに配列を格納
自由度
静的配列 < 動的配列 < Variantに配列を格納
関連記事




コメント