配列(一次元/二次元)

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

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

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

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

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

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

Public Sub sample1D()
    Dim arr(2) As Variant
    
    '■配列にデータを格納
    arr(0) = 1
    arr(1) = 2
    arr(2) = 3
    
    '■For Each文で取得する
    Dim tmp As Variant
    For Each tmp In arr
        Debug.Print tmp
    Next
    
    '■結果
    '1
    '2
    '3
End Sub

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

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 Each文で取得する
    Dim tmp As Variant
    For Each tmp In arr
        Debug.Print tmp
    Next
    
    '■結果
    '1
    '2
    '3
    'あ
    'い
    'う
End Sub

注意点

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

 

関連記事

コメント

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