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の積極的な活用にも取り組み中。
とっても恥ずかしがり。
掲載日: 2018-08-31
iPentec all rights reserverd.