Home > Excel VBA Macro フロー制御 > FAQ

ブック内の全てのワークシートを順に処理するには?

Question 74.2 Previous Next
ワークブックに存在する全てのシートを順次アクセスして処理したいのですが、その記述が分かりません。よろしかったら教えていただけませんか。
Answer   Copyright (C) 2005.7.11 永井善王
school For Each...Nextステートメントを利用すれば、簡単にできますよ。
このステートメントは配列やコレクションの各要素に対して、一連のステートメントを繰り返し実行するフロー制御ステートメントの一種です。 その詳細はVBAのヘルプで見ていただくことにして、ここでは、下記にサンプルを示します。

Sub アクティブブックのすべてのシートを順に処理する()
10  For Each 各シート In Worksheets             'ブック中の各シートに対して繰り返す
20      With 各シート                           '各シートについて
30          .Activate                           'アクティブにする
40          シート名 = .Name                    'シート名を取得する
50          値 = .Range("A1").Value             'A1セルの値を取得する
60          MsgBox シート名 & " のA1セルは " & 値 'メッセージボックスで表示する
70      End With
80  Next
End Sub
まずは、これを実行して動きを見てください。
その後、40~60行目のコードを、あなたが行いたい処理に置き換えればよろしいかと思います。 お試しください。

 

Excel VBA Macro

Excel DownLoad