【VBA】5分でわかる!繰り返し処理の入門【For〜Next】

2020年4月22日

こんにちは!社内業務効率化が趣味のたけのこさんです!

効率化を行おうとしてExcelマクロ(VBA)の作成を行っている。または興味がある。
そしてExcelマクロ(VBA)が初めてのプログラミングという人のために繰り返し処理の説明をします!

繰り返し処理はプログラムを書く上で必須のスキルになりますので覚えなければならない構文です。
しかし書き方には少し癖があるため初心者には分かりづらいものになっています。

そこで、この記事ではプログラミング初心者の人向けに分かりやすく繰り返し処理を説明していこうと思います。

5分でわかる内容にまとめますのでよろしくお願いします。
では、確認していきましょう!

この記事を読んで欲しい人

  • VBA初心者の人
  • そもそもプログラミング初心者の人
  • 繰り返し処理を1から学びたい人
この記事を読むと出来るようになること
  • 繰り返し処理の考え方がわかる
  • for分を使用した繰り返し処理の記入方法がわかる

繰り返し処理を使用した/使用しなかった場合の比較

繰り返し処理を使用した/使用しなかった場合の比較

初めにソースコードの比較から確認した方が分かりやすいと思いますので繰り返し処理を使った/使わない場合のソースコードを確認しましょう

ソースコードのプログラム内容は

“XX"回目の処理ですというポップアップを20回分出力するプログラムです!


※Mac環境なのでWindowsと出力が少し違います

ポップアップ繰り返す

本プログラムを繰り返し処理を使用しなかった場合とした場合で比べてみましょう!

繰り返し処理を使用しなかった場合

繰り返し処理使用しなかった場合のソースコードです。

Sub nonrepet()

    MsgBox "1 回目の処理です"
    MsgBox "2 回目の処理です"
    MsgBox "3 回目の処理です"
    MsgBox "4 回目の処理です"
    MsgBox "5 回目の処理です"
    MsgBox "6 回目の処理です"
    MsgBox "7 回目の処理です"
    MsgBox "8 回目の処理です"
    MsgBox "9 回目の処理です"
    MsgBox "10 回目の処理です"
    MsgBox "11 回目の処理です"
    MsgBox "12 回目の処理です"
    MsgBox "13 回目の処理です"
    MsgBox "14 回目の処理です"
    MsgBox "15 回目の処理です"
    MsgBox "16 回目の処理です"
    MsgBox "17 回目の処理です"
    MsgBox "18 回目の処理です"
    MsgBox "19 回目の処理です"
    MsgBox "20 回目の処理です"

End Sub

24行分のプログラムになりました。全ての行の処理は一緒ですが回数をカウントする部分だけ違うことが分かります。

MsgBox “1回目の処理です"

赤い部分の処理が違うことがわかりますね。
次に繰り返し処理を使用した場合のソースコードの確認をしてみましょう!

繰り返し処理を使用した場合

繰り返し処理使用した場合のソースコードです。

Sub repet()

    Dim i
    For i = 1 To 20
        MsgBox i & " 回目の処理です"
    Next i

End Sub

8行だけのプログラムで記入が可能になりました!
処理の内容は繰り返し処理を使用しなかった場合と同じです。

繰り返し処理を使用した場合としなかった場合でソースコードの行数が異なることが分かりますね。

繰り返し処理を使用するとソースコードの行数をかなり削減することが出来ます。
繰り返し処理を理解することですっきりとしたソースコードを記入することが可能になります。

次の章からは繰り返し処理の考え方を確認しましょう!

繰り返し処理の考え方

繰り返し処理の考え方

それでは、繰り返し処理の考え方を説明していきます!
ちょっと難しくなりますが頑張りましょう!

繰り返し処理とは

繰り返し処理を一言で説明すると以下になります

同じ(ような)処理を複数回繰り返すときに使用する処理

テストプログラムでMsgBox “1回目の処理です"の部分ですね。

また、繰り返し処理を使用すべき場合と使用出来ない場合をまとめました。

繰り返し処理を使用するべき場合

  • 同じ処理が何回も繰り返される場合
  • コードの中に同じ処理がたくさんある場合

繰り返し処理を使用出来ない場合

  • コードの中に同じ処理が一度もない場合

同じ処理がある場合は工夫次第で繰り返し処理の使用が可能です!
繰り返し処理という名前の通り同じ処理を繰り返し行えることが特徴です!

繰り返し処理を使うメリット

繰り返し処理を使用する場合のメリットです。

  • ソースコードの分量が短くなる
  • ソースコードの解読性が上がる
  • コーディングのスピードが上がる

では、一つずつ説明していきます。

ソースコードの分量が短くなる

繰り返し処理を使用することでソースコードの行数が少なくなります
短いコードだと数十行、長いコードだと数百行の分量が削減されます。

ソースコードの解読性が上がる

繰り返し処理を使用することでソースコードが読みやすくなります。
なぜ読みやすくなるかというとコードの分量が短くなるからです。
コードが読みやすくなることでプログラムの修正が楽になります

コーディングのスピードが上がる

繰り返し処理を使用することでプログラム作成のスピードが上がります。
スピードが上がる理由としてはソースコードが短くなるからです。
コーディングスピードが上がることでプログラムを考える時間を多く取れるようになります。

上記3つのメリットがあるため繰り返し処理を使っていることをおすすめします。
次からは具体的に繰り返し処理を使用するとどのような流れで処理が進んでいくかの確認をしましょう。

繰り返しの処理の流れ

繰り返しの処理の流れ

繰り返し処理を使用した場合と使用しなかった場合の違いを処理の流れで確認してみましょう!
プログラム例で説明したものを再度確認していきます!

繰り返し処理を使わない場合

繰り返し処理を使わない場合です。
プログラミングは上からしたに処理されていきます。繰り返し処理を使用しなかった場合は単純に上から下に処理されます。

繰り返さない

繰り返し処理を使った場合

繰り返し処理を使用した場合の処理手順です。
プログラムの処理順番を確認していきます。

①変数に1が代入され、Nextの部分まで処理される

繰り返す1

②Forの部分まで戻る

繰り返す2

③変数が2になり、Nextの部分まで処理される

繰り返す3

④変数が20になるまで繰り返される

繰り返す4

⑤20になったらNextの下に進む

繰り返す5

以上、繰り返し処理の手順でした。


処理の順番は説明通りですがFor分のポイントとして2点あげますね。

  1. 3行目 For i = 1 to 20
  2. 5行目 Next i

1つ目は変数が1から20まで繰り返される分だということです。
数字を変更させれば変数の繰り返しを変更することが出来ます。

2つ目はNextの右側には繰り返される変数を入力することです。
今回の場合は変数[i]を使用しているため[i]を入力してます。
忘れやすいので注意してください!

VBAにおける繰り返し処理の種類

VBAにおける繰り返し処理の種類

VBAで使用できる繰り返し処理の種類の確認をしていきましょう!

For〜Next

使用用途

使用用途・一番基本的な使用方法
繰り返す回数が最初から決まっている場合使用される
・繰り返し処理といえばこれ!って位使用される
とりあえずFor〜nextの使用方法を覚えておきましょう
使用頻度★★★★★

Do〜While

使用用途繰り返し回数が決まってない場合に使用される
・セルの中に文字が入っている場合だけ繰り返す場合などにしようされる
・Do~Whileも使用頻度が多いため覚えましょう!
使用頻度★★★★☆

For Each〜Next

使用用途配列やコレクションの中身を全て参照する場合に使用される
・初級者ではあまり使用しないかも・・・
・上級者になればなるほど使用頻度が増える
・余裕があれば習得しましょう。
使用頻度★★☆☆☆

まとめ

まとめ

いかがだったでしょう?

今回は繰り返し処理の使用方法をプログラミング初心者向けにまとめてみました。
繰り返し処理はよく使われる構文なので本記事を読んで習得するようにしましょう。

一旦はFor〜Nextから使用していき、繰り返し処理に慣れるようにしましょう!

ではまた次回の記事で