全てのシートをループして処理する方法
スポンサーリンク
Excel VBA で全てのシートをループして処理する方法についてです。
For Each を使用する方法
For Each を使用するとシンプルに記述することができます。次のサンプルコードでは、ブック内の全てのシートの A1 セルにそのシートの名前を入力します。
VBA(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | Option Explicit Sub test() Dim objSheet As Worksheet ' ブックの全シートを 1 つずつループして処理する For Each objSheet In ThisWorkbook.Worksheets Debug.Print objSheet.Name & "を処理します" 'A1セルにシートの名前を書き込む objSheet.Cells(1, 1) = "このシートの名前は" & objSheet.Name & "です。" Next End Sub |
For を使用する方法
For で全てのシートを処理する場合は、ワークシート数を Count で調べて、それを終了条件としてループ処理を行います。
VBA(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | Option Explicit Sub test() Dim i As Integer ' 現在のブックのシート数を取得 For i = 1 To ThisWorkbook.Worksheets.Count Debug.Print i & "枚目のシートの処理を開始" 'A1セルに何枚目のシートかを書き込む ThisWorkbook.Worksheets(i).Range("A1") = "これは" & i & "枚目のシートです。" Next End Sub |
スポンサーリンク