分かりやすく、使いやすく。

For Each で配列の全ての要素を処理する方法

スポンサーリンク

エクセルVBA では For Each を使用して配列の全ての要素を処理することができます。

  1. 通常の配列の場合
  2. 二次元配列の場合


通常の配列の場合

配列のすべての要素を表示するサンプルコードは次の通りです。

VBA(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Option Explicit
 
Sub test()
 
'サイズ5(最大インデックス4)の配列を宣言
Dim strNames(4)
Dim strName 'For Eachの中で配列の要素の値を格納するための変数
 
'配列の各要素に値を代入
strNames(0) = "太郎"
strNames(1) = "次郎"
strNames(2) = "三郎"
strNames(3) = "四朗"
strNames(4) = "五郎"
 
'配列内の各要素を1個ずつ取り出して処理
For Each strName In strNames
    Debug.Print (strName)
Next
 
End Sub 

上記の実行結果は次の通りです。

イミディエイトウインドウ
1
2
3
4
5
太郎
次郎
三郎
四朗
五郎 

二次元配列の場合

二次元配列のすべての要素を表示するサンプルコードは次の通りです。

VBA(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Option Explicit
 
Sub test()
 
'サイズ2×4の配列を宣言
Dim strNames(1, 3)
Dim strName 'For Eachの中で配列の要素の値を格納するための変数
 
'配列の各要素に値を代入
strNames(0, 0) = "太郎"
strNames(0, 1) = "次郎"
strNames(0, 2) = "三郎"
strNames(0, 3) = "四郎"
strNames(1, 0) = "一子"
strNames(1, 1) = "二子"
strNames(1, 2) = "三子"
strNames(1, 3) = "四子"
 
For Each strName In strNames
    Debug.Print (strName)
Next
 
End Sub 

上記の実行結果は次の通りです。

イミディエイトウインドウ
1
2
3
4
5
6
7
8
太郎
一子
次郎
二子
三郎
三子
四郎
四子 
スポンサーリンク
スポンサーリンク