分かりやすく、使いやすく。

全てのシートをループして処理する方法

スポンサーリンク

Excel VBA で全てのシートをループして処理する方法についてです。

  1. For Each を使用する方法
  2. For を使用する方法


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
  
  ' ブックの全シートを 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 
スポンサーリンク