配列(一次元/二次元)

ニ次元配列の中身をイミディエイトウィンドウに全て出力する処理をパーツ化【ExcelVBA】

パーツ化とは

ExcelVBAマクロ初級者からの脱却が、処理のパーツ化(プロシージャの分割)と考えています。
マクロを作る上で基本機能をパーツ化する事で、開発時間の削減に繋がります。
処理はパーツ単位で分ける事を心掛けましょう。

分かりやすく説明すると、エクセルの「関数」と同様です。
SUM関数であれば セル内に「=SUM(1+2+3)」と記載すれば、セルには「6」と表示されますよね。
値を渡せば正しい値で返ってくる動きです。

このコードをコピペでOK

'■ニ次元配列の中身を見やすくイミディエイトウインドウへ出力する
Public Function call_debugPrintArray2D(tmp As Variant, sRow As Long, eRow As Long)
    Dim r As Long, c As Long
    For r = sRow To eRow
        Debug.Print r; ,                        ';=改行しない ,=tab挿入
        For c = LBound(tmp, 2) To UBound(tmp, 2)
            Debug.Print tmp(r, c); ,            ';=改行しない ,=tab挿入
        Next
        Debug.Print ""                          '改行
    Next
End Function

人が見やすいのはA1形式ですが、VBAで扱いやすいのはR1C1形式です。
例)セルA1を表す時、「A1(A1形式)」「1.1(R1C1形式)」

上記をお好きなモジュール内にコピペしてください。
実際に使用する時は以下のような形で使用してください。

Public Sub sample()
        
    Dim arr(1 To 5, 1 To 5) As Variant
    
    arr(1, 1) = "a"
    arr(2, 1) = "b"
    arr(3, 1) = "c"
    arr(4, 1) = "d"
    arr(5, 1) = "e"
    
    Dim r As Long
    Dim c As Long
    For r = 1 To 5
        For c = 2 To 5
        arr(r, c) = arr(r, 1) & c
        Next
    Next
    '■イミディエイトウィンドウに出力する
    Call call_debugPrintArray2D(arr, LBound(arr), UBound(arr))
    '下記が出力される
    '1            a             a2            a3            a4            a5
    '2            b             b2            b3            b4            b5
    '3            c             c2            c3            c4            c5
    '4            d             d2            d3            d4            d5
    '5            e             e2            e3            e4            e5

    '■イミディエイトウィンドウに出力する
    Call call_debugPrintArray2D(arr, 3, 4)
    '下記が出力される
    '3            c             c2            c3            c4            c5
    '4            d             d2            d3            d4            d5

End Sub

結果イメージ

上記サンプル通り、配列要素数 TAB 配列の中身 で出力します。

注意点

特にありません。

関連記事

コメント

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