今回はFor~Nextステートメントについてお話します。

 

For~Nextステートメントは繰り返しの作業を行う時に使用します。これも非常によく使われますのでぜひ覚えて下さいね。

 

それではいきましょう。

スポンサーリンク

For~Nextステートメントとは?

For i = a to b

Next

これが基本形です。iは変数です。a、bは基本数字が入ります。意味は「aからbまで○を繰り返す」です。

 

「変数って何?」という人はVBA講座2-5を復習してくださいね。

 

では実際に使用するコードを見てみましょう。

Dim i As Integer
  For i = 2 To 17
  cboTani.AddItem Worksheets(“基本マスタ”).Cells(i, 2).Value
Next

では上記を一行ずつ解説していきます。

 

まず1行目

Dim i As Integer

意味は「変数iを整数と宣言する」。これもVBA講座2-5でやりましたね。忘れてしまった方は復習しておきましょう。

 

続いて2行目

For i = 2 To 17

「変数iには2から17までの数字を順番に入れる。その際、以下の動作を都度行う」という意味になります。

 

基本形そのままですね。なぜ2から17なのかは次にわかります。

 

3行目

cboTani.AddItem Worksheets(“基本マスタ”).Cells(i, 2).Value

「コントロールcboTani(ユーザーフォームに配置済)にアイテムを加える。そのアイテムとはワークシート基本マスタのセル(2,2)から(17,2)までの値である。」

 

これが具体的にどこを指すのかといいますと…

vba2-9-1

上の画像の赤枠で囲まれた部分ですね。

 

cboTaniに入れる値はVBA講座2-4で設定しました。今回はそれを1個1個加えるのではなく、繰り返し処理を使用する事で楽をする、というわけです。

 

4行目

Next

Nextは「最初に戻る」と考えて下さい。ただし変数iが17になるまでは。といった感じです。

スポンサーリンク

Cellsは(行番号,列番号)を意味する

Cells(i,2)について補足を。Cellsは(行番号,列番号)を示しています。例えばCells(2,2)はB2セルを意味します。

 

Excelのシートでは行は番号が付いているのでわかりやすいですが、列はアルファベットになっているので少しわかりづらいかもしれませんね。

 

セルを示す方法はもうひとつあります。VBA講座2-7で少しお話しました。こっちの方がわかりやすいかもしれません。

Range(“B2”)=Cells(2,2)

こんな感じです。

 

ただこちらはセルを「””」で挟むのを忘れずに。付けないとエラーが発生してしまいます。

 

どっちがいいとかではなく、場合によって使い分ける形になります。Valueは値です。そのまんまですね。

 

話しを戻して、全体をつなげると…「B2セルの値(T)からB17セルの値(U)までをcboTaniに追加する」という意味になります。

 

1つ1つ追加したら17行になりますが、For~Nextステートメントを使えば4行で済みます。

 

それではFor~Nextステートメントについては以上となります。お疲れ様でした。

 

次回は実際にコンボボックスに値を読み込ませてみましょう。

>>Excel VBA講座 目次はこちら