VBA入門_繰り返し処理(For Next)

この記事を書いたチーム:frontier
VBA入門_繰り返し処理(For Next)

For Next文を使った繰り返し処理 

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

For Next 文で指定した回数だけ繰り返し処理を行いたい場合に使用します。 

構文 

 

counter 

必ず指定します。 

カウンタに使う数値変数を指定します。 

start 

必ず指定します。 

引数 counter の初期値を指定します。 

end 

必ず指定します。 

引数 counter の最終値を指定します。 

step 

省略可能です。ループを繰り返すごとに引数counterには1が加算されます。 

ループを繰り返すごとに引数 counter に加算される値を指定します。 

statements 

省略可能です。 

ループ内で実行される一連のステートメントで、For と Next の間に記述します。 

ここに記述したステートメントは、For…Next ステートメントで指定した回数だけ実行されます。 

 

上記構文の余分なものを消して、日本語に直してみましょう。 

使用例・For Next文で文字列を入力 

ForNext文を使って、「セルA1」から「セルA10」まで文字列「a」を入力する事例です。 

マクロ実行後 

重要なのは4行目の 「For = i 1 to 10」と5行目の「Range(“A” & i).Value」です。 
まず、4行目が i=1,2,3,・・・,10と加算しながら繰り返すプログラムを意味します。 

一方、5行目の Range(“A” & i).Value はセルAi の値を指します。 
したがって、4行目と5行目を組み合わせると、セルA1、セルA2、・・・セルA10と増やすことが可能です。 
その結果、「セルA1からセルA10まで”a”を入力する」となります。 

 

使用例・For Next文の2つ以上(複数)の組み合わせ 

Step-1という方法で5行目から1行目に向かって、行を削除していくプログラムです。 

マクロ実行前 

マクロ実行後 

1.「Sub」で始まります。 

2.Long(整数)型の変数を2つを使います。 

3.ForとNextの間を、i=5,4,3,2,1と1つずつカウントダウンしながら、繰り返し処理を実行

これでXからYまで1ずつカウントダウンしながら、繰り返し処理を行うことができます。 
なお、X>Yでそれぞれには数値が入ります 。

4.「i Mod 2」でiを2で割ったときの余りを計算できます。 

その余りが0のとき、すなわち2で割り切れる(つまり偶数)とき、プログラム5をを実行します。 

5.i行目を削除します。 

これで「行番号」の行を削除することができます。 

この事例ではプログラム4で偶数のときのみ、プログラム5が実行されるようにしています。 

6.「End Sub」を読み込むと、プログラムが終了します。 

 

使用例・For Next文の2つ以上(複数)の組み合わせ 

ForNextを2つ組み合わせて、かけ算九九表を作ります。 

マクロ実行後 

1.「Sub」で始まります。 

2.Long(整数)型の変数を2つを使います。 

3.For(1行目)とNext(9行目)の間を、i=1,2,3,・・・,7,8,9と1つずつカウントアップしながら、繰り返し処理を行います。 

4.For(1行目)とNext(5行目)の間を、k=1,2,3,・・・,7,8,9と1つずつカウントアップしながら、繰り返し処理を行います。 

5.「Cells(i, k).Value = i * k」は、「Range(“A” & i).Offset(0, k 1).Value = i * k」でも同じ結果となります。 

6.「End Sub」を読み込むと、プログラムが終了します。 

 

【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

Smallitのサービス