パーツ化とは
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 配列の中身 で出力します。
注意点
特にありません。



コメント