配列(一次元/二次元)

静的配列/動的配列/Variant型に配列代入の違い【ExcelVBA】

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に配列を格納

関連記事

 

 

コメント

タイトルとURLをコピーしました