オデッセイの運営サイト一覧

Excel®️、Accessのマクロ・VBAのスキルを評価する資格VBAエキスパート

企業・教育機関の皆さまへ 試験会場を探す お問い合せ

やってみよう!Excel VBAで業務改善!|VBAとの出会い編

第6話「星くん、繰り返し構文を学ぶ!」

第6話「星くん、繰り返し構文を学ぶ!」

登場人物紹介

繰り返し構文をネストしよう!

「このFor…Nextステートメント、Ifステートメント同様にネスト(入れ子)構造にすることもできるよ」

八木くんが再び、コードを書き換えます。

Sub Sample() Dim i Dim j For i = 1 To 2 For j = 1 To 3 MsgBox i & "-" & j & "回目の繰り返し処理です" Next j Next i End Sub

「ちょっとめんどくさいけど…。この場合、コードを実行するとどうなると思う?」

「あ…、ちょっと待った。ネストしているFor…Nextステートメントの、カウンタ変数が"j"になってるよ。
これっていいのかい?」

「えっ?ああ…大丈夫だよ。カウンタ変数の変数名は、必ず"i"にしなければならないわけじゃないんだ。
"j"でも"k"でもいいし、"Counter1"のような長い変数名にしてもOKだ。
でも一般的には"i"や"j"が、よく使われるから、こっちでおぼえておいたほうがいい。
あと、ネストしている2つのFor…Nextステートメントは、お互いに独立しているんだ。
カウンタ変数を同じにしたら、正しくカウントができないだろ?
だからカウンタ変数も、2つ用意しているんだよ」

「そういうわけなのか…」

星くんは、八木くんの説明にうなずきます。

「さあ、星。このコードを実行するとどうなるでしょう?」

「むーーーっ」

星くんは、長い間コードを見つめていましたが…、

「…だめだ、これは難しすぎるよ…。実行するとどうなるんだい?」

ついにギブアップしてしまいました。

「そっか…さすがにこれは、まだ難しいか。早速、実行してみよう」

八木くんがコードを実行すると、次の6つのメッセージボックスが表示されました。

「コードを実行すると、最初のFor…Nextステートメントのカウンタ変数iが1になる。
次にネストしているFor…Nextステートメントに処理が移り、
カウンタ変数jが1から3になるまで3回繰り返し処理が行われる。
次に最初のFor…Nextステートメントのカウンタ変数iが2になり、2回目の処理が行われる。
このときもネストしているFor…Nextステートメントは3回処理を繰り返すため…
合計6つのメッセージが表示されるよ」

八木くんの解説が続きます。

シーズン1 「VBAとの出会い」編:エピソード一覧

一覧へ戻る

MENU