スポンサーリンク

【初心者向け】Excel VBA(マクロ)繰り返し処理入門、For 文の使い方


はじめてプログラミングを勉強している方が挫折しやすいのが、繰り返し(ループ)処理です。

同じことを何回も繰り返すというのはプログラミング独特の概念なので、最初はなかなか分かりません。

慣れるのにはある程度時間がかかります。

(私はかかりました。)

さて、今日は Excel VBA(マクロ)での繰り返し処理の入門編ということで、For 文の使い方をじっくり解説します!

VBA 習いたての人が繰り返し処理で挫折してしまったらもったいないと思うんですよね。。

Excel VBA は経理などの事務職では使えるツールなので、「繰り返し処理の壁」は突破してして頂きたいです。

それでは行ってみましょう!

スポンサーリンク

1、繰り返し処理の題材

For 文を使うための題材を用意しますね。

最初、Excel シート上の A列の A1 ~ A10 に 1 〜 10 の番号がふってあるものとします。

題材

VBA を使ってこのシートのセル B1 〜 B10 に、次のように数字を並べたいと思います。

数字を並べる

VBA を使うために Alt + F11 を押して VBE(エディタ)を開きましょう。

VBE開く

そして、Alt → I → M を押して標準モジュール(VBA コードを記述するところ)を挿入しましょう。

真っ白なエディタが出てきます。

標準モジュール

ここに VBA コードを書き込みます。

上記の題材を使って VBA コードを書いて For 文の使い方を説明しますね!

2、For 文の使い方

今回の題材の場合だと、VBA コードは以下のようになります。

プロシージャ名(Sub の後)は test としました。

勉強を開始したばかりの方は、ぜひこれ↓ をそっくりそのままコピペして試して頂きたいです!

まずは For文のルールを覚えましょう!

For 文は次のように記述して使います。

For 変数 = 数値1 To 数値2
  繰り返したい処理
Next 変数

最初の行に For を記述し、最後の行に Next を記述します。

そして、For の行と Next の行で囲まれた間に繰り返したい処理を書き込みます。

さて、先に For 文を理解するためのポイントを書いておきますね。

ポイント1: 処理を何回繰り返したいか? をはっきりさせる
ポイント2: 最初(For の後)と最後(Next の後)の変数を同じにする
ポイント3: 繰り返し処理の法則を見つけ出す
ポイント4: 紙に図に書いてイメージを湧かせる

ポイント1: 処理を何回繰り返したいか? をはっきりさせる

For 文の最初の行では処理を繰り返す回数を指示します。

処理を繰り返す回数

まず、処理を何回繰り返したいか? をはっきりさせましょう!

今回の場合は、セル B1~B10 に数字を並べたいのですよね。

B1~B10に数字を並べる

とりあえず感覚的にでもかまわないので、「表示させる数字が10個だから、繰り返しの回数は 10回」と理解して下さい。

「変数」はその名のとおり変化します。

変数が 1 から 10 になるまで1つずつ変化させるという意味で次のように書きます。

For 変数 = 1 To 10

変数はどのような文字でもかまいません。

・アルファベット1文字、複数文字

・日本語1文字、複数文字

VBA で変数を使うときは、普通はアルファベットで書きます。

繰り返し処理の場合だと一文字の i、j、k を使うことが多いですかね!

今回は i を使っています。

変数iを使う

ポイント2: 最初(For の後)と最後(Next の後)の変数を同じにする

次のように書くことで、 i が 1 から 10になるまで 1つずつ増やして変化させるという意味になります。

そして、最後の行には

と記述します。

For i = 1 To 10

Next i

上記の間に繰り返したい処理を書き込むことになるわけですね。

さて、ここで気を付けなければならないのは For の直後の変数と Next の直後の変数を同じにするということです。

変数を同じにする

今回の場合は i にしていますよね!

For 文を使うときは、最初に

For i = 1 To 10

と書いたらそのすぐ後に

Next i

と書いてしまいましょう。

そうすれば間違わずに済みます。

ポイント3: 繰り返し処理の法則を見つけ出す

さて、ここまでできたら For と Next 間に繰り返したい処理を書いていきます。

For i = 1 To 10
   繰り返したい処理
Next i

10回同じ処理を繰り返すことになります。

10回同じ処理を繰り返す

i が 1 のときに 1回目の処理

i が 2 のときに 2回目の処理




i が 10 のときに 10回目の処理

繰り返したい処理は For と Next の間の以下の部分になります。

繰り返したい処理

さて、上記の Cells(i, 1) には変数 i が入っていますよね。

先ほどお話ししたように i は 1 から 10 まで 1つずつ変化します。

そうなると、セルを表す Cells(i, 1) も i が 1 から 10 まで増えていくにしたがって、どのセルを示すか変わるんですね!

i = 1 のとき Cells(1, 1) (A1 のこと)

i = 2 のとき Cells(2, 1) (A2 のこと)




i = 10 のとき Cells(10, 1) (A10 のこと)

繰り返し図示

これ、i が増えるにしたがって i を使って表される他の要素も変化するということです。

これをしっかりイメージできるようになって頂きたいです!

Excel の場合、i の変化にともない操作するセルが1つずつ変わることが多いです。

iが1つずつ増える

さて、今回は、B列に 2、4、6、8、10、、、、と並べたかったわけですよね。

そうしたい場合にどうすれば i を使ってそれを実現できるか考えます。

そして、A 列の値 Cells(i, 1) を2倍すればいいんだ! って気付けることが大事なのです。

以下のように掛け算を書くことで、B列にA列の値を2倍した値を表示できます。

Cells(i, 2) = Cells(i, 1) * 2

ポイント4: 紙に図に書いてイメージを湧かせる

For と Next の間に記述する内容は、指定した回数だけ繰り返したいことであり、かつ i を使って実現できることにします。

なかなか最初は分かりにくいことなので、繰り返し処理を考えるときにイメージが湧くように紙に図を書くなりすると良いでしょう!

紙に書く

3、まとめ

For 文の基礎的な使い方について説明しました。

今回は i を 1から10まで変化させる VBA コードですが、必ず i を1からスタートさせなければならないわけではありません。

2などの他の数字からスタートすることもできます。

また、必ず i を1つずつ増やしていかなければならないわけでもありません。

2つずつ増やすことも、3つずつ増やすこともできます。

逆に減らすこともできます。

色々な使い方がある For 文ですが、今日お話しした内容が基礎の基礎です。

苦手意識を持ちやすい繰り返し処理も、基礎をしっかり身に付けて繰り返し練習すれば使えるようになります。

私もはじめてプログラミングをやったときには繰り返し処理がさっぱり分かりませんでしたが、

何回も練習するうちにわかるようになりましたよ!

Excel VBA についてのメニューも提供させて頂いておりますのでよろしければ ↓

◆Excel シートのオーダーメイド
◆Excel、マクロ(Excel VBA) のマンツーマンレッスン

編集後記

昨日(9/20)は仕事の後、空き家についての勉強。

今週土曜日に空き家相談会に相談員として出向かせて頂きます。