次回より『ヒデログ』とご検索ください

【VBA入門】3分で分かるFor Each文の使い方

VBA

For Each文の使い方を紹介します。

For Each文とは?

For Each文は、配列の要素を1つずつ取り出していく方法です。サンプルソースを見てみましょう。

Sub macro1()
    Dim fruits() As Variant 'Arrayを使うにはVariant型にする必要がある
    fruits = Array("apple", "banana", "cherry") 'ArrayはVariant型を戻り値としています
        
    Dim fruit As Variant 'fruitsから値をとるのでVariant型でなくてはならない
    Dim fruits_all As Variant '値の型が分かっていれば特にVariant型でなくてもよい

    For Each fruit In fruits '配列fruitsから順番に値を取り出しfruitに入れる
        fruits_all = fruits_all & fruit & " "
    Next fruit

    MsgBox fruits_all
End Sub
実行結果

コレクションに対するFor Each文

このように配列に対して行うことができますが、Excel特有のコレクションに対しても行うことができます。

コレクションとは?

コレクションを理解するにはオプジェクトを理解しなければないりません。

  • オプジェクト:1つのワークシート
  • コレクション:複数のワークシート
1つのWorksheetはオブジェクト、複数のWorksheet(Worksheets)はコレクションになります。

コレクションに対するFor Each文の使い方

Dim ws as Worksheet 'オブジェクトを定義
For Each ws In Worksheets 'Worksheets:全てのWorksheet
    ws.select 'ws:各Worksheetを選択
Next ws

まとめ

For Each文の使い方を紹介しました。

配列に対する使い方とコレクションに対する使い方2つありました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です