ポイント
- 配列の要素数を意識しないで、かつ、インデックスを取得してループする。
- LBound でインデックスの最小値を、UBound でインデックスの最大値を取得する。
- LBound、UBound 関数で n 次元目のインデックスを取得するには 2 つ目の引数に n を指定する。
- 1 次元目:
LBound(values, 1)
UBound(values, 1)
- 2 次元目:
LBound(values, 2)
UBound(values, 2)
- 1 次元目:
VBA コード
' 2 次元配列 values(1 To n, 1 To m) の各要素を取り出すコード Dim i As Long Dim j As Long For i = LBound(values, 1) To UBound(values, 1) For j = LBound(values, 2) To UBound(values, 2) ' values(i, j) に対して処理を行う Next j Next i ' 例えば、2 次元配列 values(1 To n, 1 To m) の ' 2 次元目のインデックス 3 の要素を取り出すコード For i = LBound(values, 1) To UBound(values, 1) ' values(i, j) に対して処理を行う Next i
おわりに
LBound、UBound を使用した 2 次元配列の操作をよく行うわりに、いつもコードを忘れてしまいますの><。
ですので今回まとめました♪
いままで、次の投稿で使用しておりました!
- 【Excel VBA】コレクションを配列に変換するコード – oki2a24
- 【Excel VBA】セル番号などの絶対座標指定ではなく、セルに変数として指定した文字列に対応した場所に書き込む変数指定で帳票を楽に作れるようにするクラス! – oki2a24
- 【Excel VBA】【改善】フォーマットワークシートに指定した変数に対応する場所に書き込むクラスのリファクタリング・機能追加いたしました! – oki2a24
- 【Excel VBA】【改善2】座標でなく、フォーマットシートに設定したキーに対応する場所に書き込むクラスの仕様変更とリファクタリング♪ – oki2a24
- 【Excel VBA】指定したシートの範囲のセルの先頭および末尾のスペースを削除するクラスのコード♪ – oki2a24
以上です。