/ / Excel VBAループ

Excel VBAループ

シングルループ | ダブルループ | トリプルループ | Do While Loop

ループは、最も強力なプログラミング手法の1つです。 A ループExcel VBA わずかなコード行で一連のセルをループすることができます。

シングルループ

1つのループを使用して、1次元のセル範囲をループすることができます。

ワークシートにコマンドボタンを配置し、次のコード行を追加します。

Dim i As Integer

For i = 1 To 6
    Cells(i, 1).Value = 100
Next i

シート上のコマンドボタンをクリックすると、結果が表示されます。

Excel VBAでの単一ループ

説明: ForとNextのコード行は6回実行されます。 i = 1の場合、Excel VBAは行1と列1の交点にあるセルに値100を入力します.Excel VBAが次のiに達すると、iが1で増加し、Forステートメントに戻ります。 i = 2の場合、Excel VBAは行2と列1の交差点などで値100をセルに入力します。

注:ForとNextの間のコードを常にインデント(タブ)することをお勧めします。これにより、コードを読みやすくなります。

ダブルループ

ダブルループを使用して、2次元のセル範囲をループすることができます。

ワークシートにコマンドボタンを配置し、次のコード行を追加します。

Dim i As Integer, j As Integer

For i = 1 To 6
    For j = 1 To 2
        Cells(i, j).Value = 100
    Next j
Next i

シート上のコマンドボタンをクリックすると、結果が表示されます。

Excel VBAのダブルループ

説明: i = 1およびj = 1の場合、Excel VBAは行1と列1の交点にあるセルに値100を入力します。Excel VBAが次のjに達すると、jが1で増加し、For jステートメントに戻ります。 i = 1およびj = 2の場合、Excel VBAは行1と列2の交差点のセルに値100を入力します。次に、jが1から2までしか実行されないためExcel VBAは次のjを無視します。それは1でiを増やし、For iステートメントにジャンプします。 i = 2およびj = 1の場合、Excel VBAは行2と列1の交点にあるセルに値100を入力します。

トリプルループ

トリプルループを使用して、複数のExcelワークシート上の2次元範囲をループすることができます。

ワークシートにコマンドボタンを配置し、次のコード行を追加します。

Dim c As Integer, i As Integer, j As Integer

For c = 1 To 3
    For i = 1 To 6
        For j = 1 To 2
            Worksheets(c).Cells(i, j).Value = 100
        Next j
    Next i
Next c

説明: ダブルループのコードと比較した唯一の変更は、もう1つのループを追加してワークシート(c)を追加したことです。 C = 1の場合は最初のシート、c = 2の場合は2番目のシート、c = 3の場合は3番目のシートの2次元範囲を取得します。この結果を表示するには、Excelファイルをダウンロードします。

Do While Loop

For Nextループのほかに、Excel VBAには他のループもあります。たとえば、Do Whileループです。 Do WhileとLoopの間に配置されたコードは、Do Whileの後の部分が真である限り繰り返されます。

1.ワークシートにコマンドボタンを配置し、次のコード行を追加します。

Dim i As Integer
i = 1

Do While i < 6
    Cells(i, 1).Value = 20
    i = i + 1
Loop

シート上のコマンドボタンをクリックすると、結果が表示されます。

Do While Loop

説明: iが6より小さい限り、Excel VBAは行iと列1の交差点のセルに値20を入力し、iを1だけインクリメントします.Excel VBA(および他のプログラミング言語)では、記号 "="はになる。それは等しいことを意味しません。したがって、i = i + 1は、iがi + 1になることを意味します。つまり、iの現在の値をとり、1を加算します。たとえば、i = 1の場合、iは1 + 1 = 2になります。その結果、値20は列Aに5回配置されます(iが6のときにExcel VBAが停止するため6になりません)。

2. A列に数字を入力します。

任意の数の行

3.ワークシートにコマンドボタンを配置し、次のコード行を追加します。

Dim i As Integer
i = 1

Do While Cells(i, 1).Value <> ""
    Cells(i, 2).Value = Cells(i, 1).Value + 10
    i = i + 1
Loop

シート上のコマンドボタンをクリックすると、結果が表示されます。

高度なDo Whileループ

説明:セル(i、1)の間。値が空ではない(<>は等しいとは限りません)、Excel VBAは、行iと列2の交差点のセルに値を入力します。これは、行iと列1の交差点にあるセルの値Excel VBAは、セル(7、1).Valueが空であるため、iが7のときに停止します。これは、ワークシート上の任意の数の行をループする素晴らしい方法です。

また読む: