配列(一次元/二次元)

配列の要素に値を入れる【For文】

VBAで高速処理に欠かせない配列処理

ExcelVBAマクロは動作が遅いと言われがちです。それは大きな間違いです。
大体そういう方は、大量のデータをワークシート内のセルで、検索代入計算しており
その処理方法が間違いです。

一次元配列もしくは二次元配列にデータを格納してから処理をすることで、
速度の改善が見込めます。

配列の要素に値を代入(1次元の場合)

Public Sub sample1D()
    Dim arr(2) As Variant
    
    
    '■For文で要素を作成する
    Dim r As Long, c As Long
    For r = LBound(arr, 1) To UBound(arr, 1)
        arr(r) = r
    Next
    
    '■結果
    'arr(0)=0
    'arr(1)=1
    'arr(2)=2
End Sub

配列の要素に値を代入(2次元の場合)

Public Sub sample2D()
    Dim arr(2, 1) As Variant
        
    '■For文で要素を作成する
    Dim r As Long, c As Long
    For r = LBound(arr, 1) To UBound(arr, 1)
        For c = LBound(arr, 2) To UBound(arr, 2)
            arr(r, c) = r
        Next
    Next
    
    '■結果
    'arr(0,0)=0
    'arr(0,1)=0
    'arr(1,0)=1
    'arr(1,1)=1
    'arr(2,0)=2
    'arr(2,1)=2
End Sub

注意点

今回はFor文で要素を作成しましたが、セルの範囲を一括で代入すると配列操作も楽になります。
その場合、わざわざFor文でループしなくても簡単に代入可能です。

関連記事

コメント

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