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に配列を格納
関連記事
コメント