MS Excel: Excel で FOR NEXT VBA ステートメントを使用する方法

最終更新: 04/10/2024

ExcelでFOR NEXT文の使い方を学びたいですか?このExcelチュートリアルでは、VBAでFORループを作成するためにFOR NEXT文を使用する方法を、構文と例を交えて解説します。ぜひご期待ください!

ExcelのFOR NEXT VBAステートメントの説明

MS Excel: Excel で FOR NEXT VBA ステートメントを使用する方法
MS Excel: Excel で FOR NEXT VBA ステートメントを使用する方法

Microsoft Excel の FOR NEXT ステートメントは、VBA コードを固定回数実行できるように FOR ループを作成するために使用されます。

Excel の FOR NEXT VBA ステートメントは、論理関数に分類される組み込み関数です。Excel の VBA 関数として使用できます。VBA 関数として、Microsoft Visual Basic Editor で入力したマクロ コード内で使用できます。

ここでは、Excelでピボットテーブルを月ごとにグループ化する方法について学ぶことができます。

Excel の FOR NEXT VBA ステートメントの構文

Excel で FOR NEXT VBA ステートメントを使用して FOR ループを作成する構文は次のとおりです。

カウンター開始値から終了値まで[ステップ増分]

   {…ステートメント…}
次 [カウンタ]

パラメータまたは引数

ワークトップ

ループカウンター変数。

開始

カウンターの初期値。

カウンターの最終値。

増加する

オプション。このカウンターの値は、ループが実行されるたびに増加します。正の数でも負の数でも構いません。指定しない場合は、デフォルトで1ずつ増加します。つまり、ループが実行されるたびにカウンターの値が1ずつ増加します。

宣言

ループ内の各ステップを実行するコード ステートメント。

Excel の FOR NEXT VBA ステートメントからの戻り値

Excel の FOR NEXT VBA ステートメントは、VBA で FOR ループを作成します。

適用対象:

  • Excel for Office 365、Excel 2019、Excel 2016、Excel 2013、Excel 2011 for Mac、Excel 2010、Excel 2007、Excel 2003、Excel XP、Excel 2000

関数の種類:

  • VBA関数(VBA)

例 (Excel の FOR NEXT VBA ステートメントを関数として使用)

Excel の FOR NEXT VBA ステートメントは、この Office ツールの VBA コードでのみ使用できます。

Microsoft Excel で FOR ループを作成する方法を見てみましょう。まず、単一ループ、二重ループ、三重ループから始めて、ループを通過するたびにカウンターをインクリメントするために使用される値を変更する方法を調べてみましょう。

  コンテナ内のNode.jsの依存関係とバージョンのデバッグに関する完全ガイド

Excel の FOR NEXT VBA を使用した単一ループ

FOR ループの最も簡単な実装は、Excel で FOR NEXT VBA ステートメントを使用して単一のループを作成することです。これにより、VBA コードを一定の回数繰り返すことができます。

例えば​​:

サブシングルループの例

   整数としての Dim LCounter

   LCounter = 1 ~ 5 の場合

      メッセージボックス (Lカウンター)

   次のLカウンター

End Subの

この例では、FOR ループは変数 LCounterによって制御されます。ループは 1 から 5 まで 5 回繰り返されます。ループの各回で、LCounter変数の値を含むメッセージ ボックスが表示されます。このコードを実行すると、 1、2、3、4、5の値を含む 5 つのメッセージ ボックスが表示されます。

単一ループ – Excel の FOR NEXT VBA で増分を変更する

デフォルトでは、FORループはループカウンタを1ずつ増加させますが、これはカスタマイズ可能です。`STEP increment`コマンドを使用すると、カウンタを増加させる値を変更できます。FORループは、正の値にも負の値にも増加させることができます。

Excel の FOR NEXT VBA による正の増分

まず、FOR ループのカウンターを正の値だけインクリメントする方法の例を見てみましょう。

例えば​​:

サブインクリメント_ポジティブ_例

   整数としての Dim LCounter

   LCounter = 1 ~ 9 の場合 ステップ 2

      MsgBox Lカウンター

   次のLカウンター

End Subの

この例では、FOR ループのステップ 2 を使用して増分を 2 に変更しています。これは、FOR ループが 1 から始まり、2 ずつ増分し、9 で終了することを意味します。コードは、次のような 5 つのメッセージ ボックスを表示します。次の値: 1、3、5、7、9。

Excel の FOR NEXT VBA による負の増分

ここで、FOR ループのカウンターを負の値だけインクリメントする方法を見てみましょう。

例えば​​:

サブインクリメント_ネガティブ_例

   整数としての Dim LCounter

   LCounter = 50 ~ 30 ステップ -5 の場合

      MsgBox Lカウンター

   次のLカウンター

End Subの

負の値でインクリメントする場合は、FOR ループが逆方向にカウントされるため、開始番号を最高値、終了番号を最低値にする必要があります。したがって、この例では、FOR ループは 50 で開始し、-5 ずつ増加し、30 で終了します。コードでは、値 5、50、45、40、および 35 を含む 30 つのメッセージ ボックスが表示されます。

  InDesign で Word を開く 3 つの方法 - チュートリアル

ExcelのFOR NEXT VBAを使った二重回路

次に、Microsoft Excel で二重 FOR ループを作成する方法の例を見てみましょう。

例えば​​:

サブダブルループ_例

   Dim LCounter1 As Integer

   Dim LCounter2 As Integer

   LCounter1 の場合 = 1 ~ 4

      LCounter2 の場合 = 8 ~ 9

         MsgBox LCounter1 & «-» & LCounter2

      次へ Lカウンター2

   次へ Lカウンター1

End Subの

ここには2つのFORループがあります。外側のFORループは変数LCounter1によって制御され、内側のFORループは変数LCounter2によって制御されます。

この例では、外側の FOR ループは 4 回繰り返され (1 から 4 まで)、内側の FOR ループは 2 回繰り返されます (8 から 9 まで)。内側のループ内では、毎回LCounter1 - LCounter2の値を持つメッセージ ボックスが表示されます。したがって、この例では、1-8、1-9、2-8、2-9、3-8、3-9、4-8、4-9 の値を持つ 8 つのメッセージ ボックスが表示されます。

Excel の FOR NEXT VBA を使用したトリプル ループ

次に、Microsoft Excel でトリプル FOR ループを作成する方法の例を見てみましょう。

例えば​​:

サブトリプルループ_例

   Dim LCounter1 As Integer

   Dim LCounter2 As Integer

   Dim LCounter3 As Integer

   LCounter1 の場合 = 1 ~ 2

      LCounter2 の場合 = 5 ~ 6

         LCounter3 の場合 = 7 ~ 8

            MsgBox LCounter1 & «-» & LCounter2 & «-» & LCounter3

         次へ Lカウンター3

      次へ Lカウンター2

   次へ Lカウンター1

End Subの

ここには3つのFORループがあります。一番外側のFORループは変数LCounter1によって制御されます。次のFORループは変数LCounter2によって制御されます。一番内側のFORループは変数LCounter3によって制御されます

この例では、一番外側の FOR ループは 2 回ループし (1 から始まり 2 で終わる)、次の FOR ループは 2 回ループし (5 から始まり 6 で終わる)、一番内側のFOR ループは2 回ループします (7 から始まり 8 で終わる)。

  問題を抱えた母親への連帯と本当のアドバイス

最も内側のループ内では、コードは毎回LCounter1LCounter2LCounter3の値を持つメッセージボックスを表示します。このコードは、1-5-7、1-5-8、1-6-7、1-6-8、2-5-7、2-5-8、2-6-7、2-6-8 の値を持つ 8 つのメッセージボックスを表示します。

FOR NEXT VBA Excel の例 1

最初の例では、Excel で FOR NEXT VBA ステートメントを使用して、列 A の製品をループし、列 B の適切なアプリケーション タイプを更新します。

サブ totn_for_loop_example1()

   整数としての Dim LCounter

   LCounter = 2 ~ 4 の場合

      If Cells(LCounter, 1).Value = "Excel" then

         Cells(LCounter, 2).Value = "スプレッドシート"

      ElseIf Cells(LCounter, 1).Value = "アクセス" then

         Cells(LCounter, 2).Value = "データベース"

      ElseIf Cells(LCounter, 1).Value = "Word" then

         Cells(LCounter, 2).Value = "ワードプロセッサ"

      こうなったら終わります

   次のLカウンター

End Subの

FOR NEXT VBA Excel の例 2

2番目の例では、A列に参加者のリストがあり、2つのFORループを使用して各参加者をチームAまたはチームBに割り当てます(2つを交互に割り当てます)。

サブ totn_for_loop_example2()

   Dim LCounter1 を整数として表示

   Dim LCounter2 を整数として表示

   LCounter1 = 2 ~ 9 の場合 ステップ 2

      Cells(LCounter1, 2).Value = "チーム A"

   次のLカウンター1

   LCounter2 = 3 ~ 9 の場合 ステップ 2

      Cells(LCounter2, 2).Value = "コンピューター B"

   次のLカウンター2

End Subの

こちらもご興味があるかもしれません:Excelシートを別のワークブックにコピーする方法 – チュートリアル

ご覧のとおり、Excel の FOR NEXT VBA ステートメントの例を使用すると、この論理関数を使用して Microsoft Visual Basic エディターでループを簡単に作成できます。お役に立てば幸いです。