For Each文についてご説明します。
For Eachは同じブック内の同じ種類のオブジェクトに同様の処理を行いたいという場合に便利です。
具体的には、同じブック内の全てのシートを成形したり、すべての図形を対象としてチェックをかけたりすることができます。

For Eachの構文

For Each オブジェクトを格納する変数 In コレクション
	オブジェクトに対して行う処理
Next オブジェクトを格納する変数

コレクションとは?

同じ種類のオブジェクトの集合体のことをコレクションと呼びます。例えば、1つのワークブック内に存在する
1つ1つのワークシートはVBAではWorksheetオブジェクトとして扱われており、
ブック内のWorksheetオブジェクト全部に一括して処理を行いたい場合は
Worksheetsコレクションを操作対象とすることになります。
なお、オブジェクトを格納しておくための変数はあらかじめDimで定義しておく必要があるので
それぞれのオブジェクトに対応した型を設定するようにしてください。
ワークシートの場合は『Dim 変数名 As Worksheet』となります。
それでは、実際にワークシート内のオブジェクトをまとめて操作してみましょう。

ワークブック内のシートをまとめてリネーム

<コード>

Dim myWS As Worksheet   'Worksheetオブジェクト格納用の変数を設定'
Dim i As Integer    '月数をカウントするための変数を設定'
i = 1
For Each myWS In Worksheets
    myWS.Name = i & "月" 'ブック内のシートを月名でリネーム'
    i = i + 1
Next myWS

<実行例>

ブック内の全てのシートが1月~3月までの月名でリネームされています。
ちなみにFor Each分の末尾はIn コレクションという順番で記述することとされていますが、
Worksheetオブジェクトの集合体であるコレクションはWorksheet“s”というふうに
複数形になっている点に注意しましょう。

ワークシート内の図形を全削除

ワークシートを作成する際に図形を使用するとより見やすくなりますが、
周辺のセルを消去するなどの操作で図形のサイズが小さくなってしまい、そのまま存在が忘れられて
不要なオブジェクトとしてファイル内に残ってしまうことがあります。
こういったオブジェクトはそのままにしておくとファイルの容量を圧迫してしまいますし、
かといって手作業で全て削除することは困難です。
こんな時にはFor Eachでシート全体にチェックをかける方法が効果的です。
<コード>

Dim mySP As Shape   '図形(シェイプ)格納用の変数を設定'
    Dim i As Integer    '図形を削除した数をカウントするための変数を設定'
    i = 0
    For Each mySP In ActiveSheet.Shapes
        mySP.Delete
        i = i + 1
    Next mySP
    ActiveSheet.Select
    MsgBox i & "個の図形を削除しました。"

<実行例>

おわりに

ワークブック内のオブジェクトの一括操作にはFor Each文が大変便利です。
For文と同様ネストさせることもでき、かなり複雑な処理を行うことも可能となります。
For Each文を使いこなすことにより面倒なチェック作業もスマートに処理することができるようになりますね。