【Excelマクロ】VBAでのFor文による繰り返し方法を紹介

スポンサーリンク

アイキャッチ画像

この記事では、VBAでFor文を利用した繰り返しの方法を紹介します。

 

VBAの環境構築がまだの人はは以下を参考にしてださい。

 

まず、繰り返しについて紹介します。

繰り返しについて

For文の使い方は大きく2つに分けられます。

1.数値の繰り返し

2.配列の繰り返し

 

1.数値の繰り返し

簡単に言えば、例えば数値を1から10まで繰り返すと言った感じです。具体的にはiという変数に1〜10を設定した場合、

i=1の時の処理

i=2の時の処理

i=10の時の処理

 

プログラムにすると以下のような感じです。

    Dim i As Long
    For i = 1 To 10
        Cells(1, i).Value = "OK"
    Next

上記の プログラムでは、

i=1の時、Cells(1, 1)にOKを入力

i=2の時、Cells(1, 2)にOKを入力

i=10の時、Cells(1, 10)にOKを入力

 

といった感じです。プログラムをすると以下のようになります。

マクロ実行後

 

また、For文はよくif文との組み合わせが多いです。

    Dim i As Long
    For i = 1 To 10
        If i Mod 2 = 0 Then
            ' 偶数の場合の処理
            Cells(1, i).Value = "偶数"
        Else
            ' 奇数の場合の処理
            Cells(1, i).Value = "奇数"
        End If
    Next

 

上記のようなプログラムの場合、iが1〜10のうち偶数の時の処理と奇数の時の処理を分けられます。

マクロ実行後

 

Modは余りを表します。上記のプログラムの「i Mod 2 = 0」はiを2で割った際の余りが0の場合という意味です。

 

2.配列の繰り返し

["りんご", "ぶどう", "パイナップル"]といった配列があるとします。この配列を繰り返しは以下のような仕組みになります。

a=りんごの場合の処理

a=ぶどうの場合の処理

a=パイナップルの場合の処理

 

これを繰り返すコードは以下の通りです。

    ' 配列の作成
    Dim fruits(2) As String
    fruits(0) = "りんご"
    fruits(1) = "ぶどう"
    fruits(2) = "パイナップル"
    
    For Each a In fruits
        If a = "りんご" Then
            ' a=りんごの場合の処理
            Cells(1, 1).Value = "赤"
        ElseIf a = "ぶどう" Then
            ' a=ぶどうの場合の処理
            Cells(1, 2).Value = "紫"
        ElseIf a = "パイナップル" Then
            ' a=パイナップルの場合の処理
            Cells(1, 3).Value = "黄"
        End If
    Next

 

上記のプログラムを実行すると以下のようになります。

マクロ実行後

 

配列については以下の記事をご覧ください。

 

以上、For文の紹介でした。以下はVBAを学ぶのにおすすめの書籍となっています。ぜひ参考にしてください。