VBAのfor~Nextとは?解説と使用例

ENGINEER.CLUB編集部

ENGINEER.CLUB編集部

はじめに…
日常や仕事で、「単純な同じ作業を何回も繰り返ししているなぁ」と思ったことはありませんか?

VBAのfor文を使うと、短時間で作業を終えることができるかもしれません。
for文には、主に「for~Next」「for~Each」の2種類があります。
使い分けとしては、「for~Next」は「〇回処理を繰り返したい」、「for~Each」は「配列や指定したセルの値を順番に処理を繰り返したい」になります。

ここでは「for Next」の解説を行い、その使い方を解説していきます。


1.for~Next文について

1-1.for~Next文とは

ツール等を作成していて、同じ命令を何回も繰り返すときはありませんでしたか?
for~Next文は、「ある命令を指定した回数だけ繰り返す」処理を行うことができます。

1-2.for~Next文の構文

for~Next文の基本的な構文は下記になります。
Stepは省略可能です。

Sub main()
  Dim i As Integer
  For i = [開始する値] To [終了する値] Step [加算(減算)する値]
    [繰り返したい命令]
  Next i      '加算(減算)する変数(変数のみの場合、+1される)
End Sub

2.for~Next文の使用例

2-1.基本的な使用例

for~Nextで囲まれた処理を、「開始する値」から「終了する値」まで繰り返します。
よく使用されるのは「AからBまでの回数を繰り返す」ですが、正確には「AからCの数だけ加算(減算)してBを超えるまで繰り返す」になります。

2ー2ー1.指定した回数分、処理を繰り返す

0~3までの値を5倍した合計値を出力する。

Sub main02()
  Dim i As Integer
  Dim cnt As Integer
  For i = 0 To 3
    cnt = cnt + i * 5
  Next i
  MsgBox cnt
End Sub

実行結果:結果

2ー2ー2.特定の条件で繰り返しを終了する

0~3までの値を5倍した合計値を出力する。
合計値が9を超えると、途中で終了する。

Sub main03()
  Dim i As Integer
  Dim cnt As Integer
  For i = 0 To 3
    cnt = cnt + i * 5
    If cnt > 9 Then
      Exit For            'cntの値が9を超えている場合、for文を抜ける
    End If
  Next i
  MsgBox cnt
End Sub

実行結果:結果2

2-3.その他の使用例

for文の「To」の後に「Step」を追加することで、繰り返しの加算や減算の値を変更することができます。
例)1から10までの奇数の合計を出力

Sub main04()
  Dim i As Integer
  Dim cnt As Integer
  For i = 1 To 10 Step 2
    cnt = cnt + i
  Next i
  MsgBox cnt
End Sub

実行結果:結果


3.注意点

下記ソースの場合、指定した値の間だけ(下記では「0」~「3」)の処理を繰り返します。
その後、3回目のNext処理を行い、For文で変数iの値をチェックします。

そのため、for文を抜けたときの変数iの値は、「終了する値」

Sub main05()
  Dim i As Integer
  Dim cnt As Integer
  For i = 0 To 3
    ‘[繰り返したい処理]
  Next i
  MsgBox i
End Sub

実行結果:結果


4.最後に

for~Next文は、VBA以外の言語でもよく使用される繰り返し処理です。
使いこなすことで、同じ内容を繰り返し行う作業の時間短縮を図ることができます。

ぜひ、活用していってください。

私たちは、全てのエンジニアに市場価値を高め自身の望む理想のキャリアを歩んでいただきたいと考えています。もし、今あなたが転職を検討しているのであればこちらの記事をご一読ください。理想のキャリアを実現するためのヒントが見つかるはずです。

『技術力』と『人間力』を高め定年まで働けるエンジニアを目指しませんか?

私たちは「技術力」だけでなく「人間力」の向上をもって、エンジニアとしてだけでなくビジネスパーソンとして高い水準を目指し、社会や顧客に必要とされることで、関わる人々に感動を与える集団であろうと思っています。

  • 定年までIT業界で働くためのスキルが身につく「感動大学」と「技術勉強会」!
  • 「給与が上がらない」を解消する6ヶ月に1度の明確な「人事評価制度」!
  • 理想のエンジニア像に近づくためのよきアドバイザー「専任コーチ制度」!
  • 稼動確認の徹底により実現できる平均残業時間17時間の働きやすい環境!

現在、株式会社ボールドでは「キャリア採用」のエントリーを受付中です。

まずは以下のボタンより弊社の紹介をご覧いただき、あなたの望むキャリアビジョンをエントリーフォームより詳しくお聞かせください。

コメント

IT業界を目指す求職者へ

プレミアムSES®で市場価値の高いエンジニアへ

株式会社ボールドが約束する5つのプレミアムとは?

IT業界を目指す求職者へ

プレミアムSES®で市場価値の高いエンジニアへ

株式会社ボールドが約束する5つのプレミアムとは?