Excel VBAのチップスです。
For each...Nextは、For...Nextのように指定回数をループするのではなく、オブジェクトの「コレクション」や「配列」のすべての要素について繰り返し実行するものです。
ということは、要素がいくつあるか分からなくても大丈夫ということになります。
構文
For Each 変数 In コレクション
処理
Next 変数
次のサンプルは、開いているブックをすべて閉じるものです。
関連するオブジェクトの集まりを「コレクション」と言います。たとえば、Workbooksコレクションには開いている全てのブックが含まれます。Worksheetsコレクションには、開いているブック内の全てのワークシートが含まれます。
sheetsコレクションには、すべてのシート(グラフシートやワークシートなど)が含まれます。
また、コレクションに含まれる各オブジェクトを「要素」または「メンバ」と呼び、要素は単数形で、コレクションは複数形で表されます。例えば、ブック内の一つのワークシートはworksheeetオブジェクトで、コレクションはWorksheetsオブジェクトとなります。
コレクショ内の特定の要素を参照するときは、例えばワークシートSheet1だったら、名前を指定して、
Worksheets("Sheet1")
とするか、番号で指定して
Worksheets(1)
とします。いやあ、ややこしいですね。