【Excel VBA】ループ処理 For…Next

■ループ処理 For…Next

同一の処理を何度も繰り返すことを「ループ処理」と呼ぶ。
ループ処理には、指定した回数だけ繰り返す方法や、
ある特定の条件を満たすまで処理を繰り返す方法がある。

今回はFor…Next文を使用する。

For 変数 = 初期値 To 繰り返したい回数
    処理 〇〇
Next

■例題( 1〜10までを表示する)

Excel Vba のイミディエイトに1〜10までを表示する。

フロー図:

▼サンプルコード

Public Sub RoopCounter()
    Dim i As Integer    'カウント用変数

    ' 10回繰り返す
    For i = 1 To 10
        
        ' イミディエイトに出力
        Debug.Print i
    
    Next i

End Sub

▼実行結果

1
2
3
4
5
6
7
8
9
10

■例題(シート名の取得)

for…Next文を使用して、Excelのシート名を取得する。
※今回は Sheet1、Sheet2、Sheet3の名前を取得する。

▼イメージ

上記Sheet1、Sheet2、Sheet3の名前を取得する。

▼実装概要

シート総数を変数に格納(今回は3)
シート総数分(3回)処理を繰り返す(For…Next文)
    シート名をイミディエイトに出力
処理終了

▼サンプルコード

Public Sub RoopCounter()
    Dim i               As Integer      'カウント用変数
    Dim countSheets     As Integer      'シート数格納変数
    
    
    ' シート総数を変数に格納(今回は3シートのため、3が設定される)
    countSheets = Worksheets.Count
    

    ' シート数分繰り返す
    For i = 1 To countSheets
        
        ' シート名をイミディエイトに出力
        Debug.Print Worksheets(i).Name
    
    Next i

End Sub

▼補足説明

Worksheets(i).Name とすることで、i番目のシート名を取得することができる。
※Worksheets(i)のiは1始まりであることに注意!!

▼実行結果

Sheet1
Sheet2
Sheet3

コメント