For Each Next文による繰り返し処理
VBAでの For Each文を紹介します。
概要
VBA (Visual Basic for Applications)で配列やコレクションの要素をループする場合は通常のFor文も利用できますが、For Each文を使うと便利です。
書式
For Each ループ内での参照変数 In コレクションまたは配列
...処理
...処理
...処理
Next
プログラム例
Excelでシートにボタンを配置し、ボタンがクリックされた際に実行されるマクロに下記のコードを記述します。
コード
Private Sub CommandButton1_Click()
Dim ar(5) As Integer
ar(0) = 4
ar(1) = 2
ar(2) = 6
ar(3) = 8
ar(4) = 1
ar(5) = 3
Dim Count As Integer
Count = 5
For Each Item In ar
Cells(Count, 4).Value = Item
Count = Count + 1
Next
End Sub
解説
下記コードで長さ6に配列を作成し、配列の要素に値を代入しています。
Dim ar(5) As Integer
ar(0) = 4
ar(1) = 2
ar(2) = 6
ar(3) = 8
ar(4) = 1
ar(5) = 3
For Each文により、先に宣言した配列arの要素ごとにループします。ループ内では、5行目から順に4列目のセルに配列arの値を表示します。
For Each Item In ar
Cells(Count, 4).Value = Item
Count = Count + 1
Next
実行結果
Excelシートで配置したボタンをクリックします。配列ar に設定した値が5行目からセルに順に表示されることが確認できます。
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。