配列(一次元/二次元)

配列の値を取得する(1次元/2次元)【For文で取得】

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

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

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

今回は配列の中身=値を取得する方法です。ForEach文で取得可能です。

配列の値を取得する(1次元)For

Public Sub sample1D()
    Dim arr(2) As Variant
    
    '■配列にデータを格納
    arr(0) = 1
    arr(1) = 2
    arr(2) = 3
    
    '■For文で取得する
    Dim r As Long, c As Long
    For r = LBound(arr, 1) To UBound(arr, 1)
        Debug.Print arr(r)
    Next
    
    '■結果
    '1
    '2
    '3
End Sub

配列の値を取得する(2次元)For

Public Sub sample2D()
    Dim arr(2, 1) As Variant
    
    '■配列にデータを格納
    arr(0, 0) = 1
    arr(0, 1) = "あ"
    arr(1, 0) = 2
    arr(1, 1) = "い"
    arr(2, 0) = 3
    arr(2, 1) = "う"
    
    '■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)
            Debug.Print arr(r, c)
        Next
    Next
    
    '■結果
    '1
    'あ
    '2
    'い
    '3
    'う
End Sub

注意点

本記事はFor文です。
ForEach文でも同様に取得が可能です。取得結果に注意しながら使用可否決めて頂ければと思います。

 

関連記事

コメント

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