Excelマクロについて

For~Nextステートメント(繰り返し処理)

wp-datacare

繰り返し処理 For~Nextステートメントについて解説します。
これが出来るようになると仕事でも活用できるようになりますよ。

For~Nextステートメントの記述は次のようになります。

Dim 変数 As Long

For 変数 = 初期値 To 終了値
  処理
Next 変数

これだけ見てもわかりにくいので以下の例で説明します。
国語と算数の点数合計を求めます。

コードは以下のとおりです。

今回初めて Cells(セルズ) が出てきています。
これは、セルの操作です。
以前の投稿でRangeを使った解説をしています。

Rangeは Range(“A1”) Range(“E3”) とセルを指定しました。

繰り返し処理では、
   1行目の処理→2行目の処理→3行目の処理・・・
   1列目の処理→2列目の処理→3列目の処理・・・
と同じ処理が繰り返し行われます。
Rangeのセルアドレスを指定する方法では、繰り返しに適していません。

そこでCells(セルズ)を使います。
Cellsは行と列を数値で指定します。

Cells(行番号,列番号) 行列 と覚えましょう

  セルA1の場合 Cells(1,1)
  セルB3の場合 Cells(3,2)
  セルE10の場合 Cells(10,5)

以下のどちらもセルA3の操作です。
どちらも同じ動作で、結果も同じです。
  Range(“A3”).Value = “こんにちは”
  Cells(3,1).Value = “こんにちは”

使い分けについては、以下のように覚えるとよいです。
  繰り返す処理の場合は    Cells
  繰り返す処理ではない場合は Range

繰り返し処理の解説に戻ります。

下図の青枠 For i = 2 To 11 の部分は、整数変数 i に
 2 → 3 → 4 → 5 → 6 → 7 → 8 → 9 → 10 → 11
と数値が +1加算されて11になるまで繰り返されます。

そのため Cells(i, 5).Value は以下のようにセルのアドレスが変化していきます。
  Cells(2, 5).Value (セルアドレス E2)
  Cells(3, 5).Value (セルアドレス E3)
  Cells(4, 5).Value (セルアドレス E4)
  Cells(5, 5).Value (セルアドレス E5)
  Cells(6, 5).Value (セルアドレス E6)
  Cells(7, 5).Value (セルアドレス E7)
  Cells(8, 5).Value (セルアドレス E8)
  Cells(9, 5).Value (セルアドレス E9)
  Cells(10, 5).Value (セルアドレス E10)
  Cells(11, 5).Value (セルアドレス E11)

今回はここまでです。

実務では、繰り返し処理の中に条件分岐(Ifステートメント)が入るのが普通です。
セルの操作・条件分岐・繰り返し処理 が使えたら中級レベルになるのはとても速いです。
それぞれ確実にマスターして下さい。

ABOUT ME
酒見 拓也
酒見 拓也
代表取締役
パチンコ企業向けにExcelマクロを使って業務の自動化、効率化のやり方を発信しています。 企業向けに「Excelマクロ研修」も行っています。
記事URLをコピーしました