こんにちは! ハマラクです。
変数宣言を覚え、いよいよデータを処理する方法を覚えていきたいと思ってきた頃でしょう。
この記事では、VBAで業務改善を目指す2段階目として「ループ処理」について説明します。
ループ処理って何?と思った方もいるでしょうが、この記事では以下のことがわかります。
・ループ処理とは何か?どんな時に使うのか
・覚えるべきループ文はたった一つ
・実際にループ処理をやってみよう!(実践多重ループ)
ループ処理を覚えるとデータの処理の幅が一気に広がります。この記事を読み終えればそのループ処理をマスターしているでしょう。
このサイト内の「VBA」タグはVBA初心者が日頃の業務を改善し、自分の時間を作っていくこと応援することを目的に作成しています。
ループ処理とは何か?どんな時に使うのか
ループ処理とは、データに対して何度も同じことを行わせる制御構文のことです。この繰り返し処理を使うと、何千回・何万回と同じことを繰り返すプログラムを簡単な文で実行させることができます。
例えば、1を1000回足し合わせるというプログラムをループ処理をせずに書くとなると
sum = 0
sum = 1 + 1 + 1 + 1 + 1 + ・・・ + 1
となりますが、ループ処理(for文)で書くと
sum = 0
For i = 1 to 1000 Step 1
sum = sum +1
Next
と簡単に書くことができます。(1×1000でいいのではと思うかもしれませんが)
このように何回も何回も同じ処理を繰り返すような場面では、このループ処理が有効になります。具体的な例をあげると次の場合などが当てはまります。
1.複数個のデータを変数に入れる場合
2.決まった値が見つかるまで変数の中を確認する場合
3.変数を足し合わせるなど計算を連続で行う場合
ループ処理はExcelの関数ではない処理なので、これを覚えると一気にVBA力がアップします。
次は、覚えるべきたった一つのループ文について説明いたします。
覚えるべきループ文はたった一つ
VBAでは大きく2つのループ文があります。それが、For~Next文とDo~While文になります。
1.For~Next文 ・・・ 決められた回数同じ処理を繰り返す
2.Do~While文 ・・・ 条件が成立するまで繰り返す
ここで覚えてほしいループ文は1つ目のFor文のみです。2つめのDo文も便利ですが、For文と次のステップとなる条件分岐処理で作ることができます。
多くのプログラム初心者は、覚えることが多くて挫折することがほとんどだと思います。でも、業務改善を目指すプログラムでは、最初からすべての処理文を覚えているのではなく、プログラムを書いていくうちに必要に応じて処理文を覚えていった方がいいと思います。
なぜなら、選択肢が増えていくとどれが効率的に書けるかなど本来の目標(業務の改善)から遠ざかり、不要な選択に逆に時間を取られてしまうからです。
今回のループ文も同様にFor文さえ覚えていれば大抵のループ処理はできてしまいます。
For文の構成は次のようになります。
For 変数 = 開始 to 終了 Step ●
処理したい制御
Next
変数に開始の値を入れて、Step ●ごとに値を増減させていき、終了の値まで来たら処理を終えます。
例えば、10回同じ処理を行う文は次のようになります。
For i = 1 to 10 step 1
処理したい制御
Next
これは、iに1を入れて1ずつ足していったときに10まで処理を行って終わるという意味になります。For文の基本的な構成は分かったと思います。次に実践してみましょう。
実際にループ処理をやってみよう!(実践多重ループ)
ループ処理の実践編となります。基本的なループ文の書き方は分かったと思いますが、ここで実践に移る前にもう一つ多重ループについて説明いたします。
多重ループとは、ループ処理の中に他のループ処理を設けることを言います。言っていることがわからないと思った方もいると思います。VBAで書いてみると次のようになります。
For a = 1 to 10 Step 1
For b = 1 to 10 Step 1
処理したい制御
Next
Next
このように外側のループが完了するまで内側のループを繰り返すような構文を多重ループと言います。この例では、10回処理する制御をさらに10回行う(10×10=100)処理になります。
では、多重ループを説明したところで実践に入りたいと思います。九九をすべて足した合計がいくらになるか求めるプログラムを書いてみましょう。
答えは・・・2025になります。どうでしたか?実行して画面に2025が表示できましたか?
手で計算しようとすると結構大変ですよね。でもVBAでは一瞬で答えが出てきましたよね。
他にも計算を試しにやってみてください。
終わりに
VBAを使った業務改善で2つ目に覚えてほしい「ループ処理」について説明いたしましたが、いかがだったでしょうか。これで、繰り返し行う処理を簡単に書くことできるようになりましたね。業務改善に使えそうだという実感もわいてきていると思います。
次回の記事では、条件分岐(判断して処理する)について説明したいと思います。条件分岐を覚えると身近なところから業務改善に取り組むことができるようになりますので、次回も読んでいただければと思います。
ここまで読んでいただきありがとうございます。ではまた次回まで!
コメント