人に任せると間違いやすい単純作業を、機械にやらせる時に便利なのがループ文です。
ループ文は繰り返しの処理ができるもので、いくつか種類がありますが
for ループ
だけ覚えれば十分です。
今までは、実行すると機械がプログラムを上から実行していくものでしたが、ループでは
上に戻る
という、トリッキーな動きが出てきます。
この部分が感覚的に理解しにくい部分なので、ゆっくりやっていきましょう。
初訪問でこのページを見てもよくわからないと思うので、最初のページから読む事をオススメします。
このサイトでは、枝葉末節にこだわらず、まずプログラムを動かして苦手意識を無くすのを目的にしています。
ループとは、繰り返し処理させること
プログラムで、セルの一つ一つに、
あ
という文字を入れるとします。
今までのプログラムだと、入力するセルの分だけ、こんなプログラムが必要になります。
最初の
hensuu = 1
セルの1行目から あ を入れるので、セルの行を指定する hensuu には1を入れています。
以降は
hensuu = hensuu + 1
で、1行ずつ進めています。
10行くらいならまだしも、200行とかになったら、プログラムが長すぎてワケがわからなくなります。
こういう繰り返しの処理に、ループを使います。
forループ
コピペ用です
Dim hensuu As Long
For hensuu = 1 To 10
Cells(hensuu, 1).Value = “あ”
Next hensuu
これだけで10行分でも、数千行分でも処理ができます。
For
と
Next
の間に、繰り返しでやりたい処理を書くだけです。
ForとNext は必ずセットです。
for ループ解説
赤線の
hensuu = 1 To 10
というのは、hensuuに初期値として1を入れて、hensuuが10まで(10を含む)繰り返すという意味です。
Next hensuu
というのは、これが実行されると
hensuu = hensuu + 1
と同じように、hensuuが1ずつ足されていきます。
ループの難しいところ
今までのプログラムは、機械が上から読んでいくだけでしたが、ループでは
Next で hensuu が+1されたら、再びForに戻ります。
For に戻ってhensuuが10以下なら、セルに あ を入れる処理に進みますが、10以上なら処理に進まずループ文を終わりにします。
For に戻った時、
hensuu = 1
は無視されます。
Next で+1しているのに、再び初期値を入れると、いつまでもhensuu は1のままだからです。
ループが複雑なのは、この部分だけです。
わかりにくかったら、デバッグで追ってみると理解しやすいですよ。
ループ文は人間の頭の使い方と違う
ループは便利ですが、人の普段の頭の使い方と違うので、混乱しがちです。
難しかったら、手書きの図を書いて、処理をペンで追ってみてください。
パソコンの画面内で解決しなかったら、直感的にわかりやすい紙とペンを使ってください。
スマートにやる必要はなくて、自身がわかりやすい方法で大丈夫です。
もっと複雑な処理ができる
今回のセルに あ を入れるというのは、別にエクセル表でドラッグしてもできる事です。
IF 文
を組み合わせるだけで、人間に近い仕事ができるようになります。
二重ループ
ループの中に、更にループを作る事ができます。
想像すると難しく感じてしまうので、今は構造を考えないで下さい。
これでできるのは、例えばフォルダ内のエクセルファイルの一つ一つから、データを取り出して処理をさせたりなどです。
ここまで出来ると、人手が完全にいらなくなります。
わたしはタイマーで起動するプログラムを作り、全自動で仕事をさせたりしました。
人手が減らせた分は、わたしの収入になりました。
学校の勉強は点数の成果がわかりにくいですが、社会人の勉強は明確な成果で返ってきます。
システム設計(難しくないです)についても書きました!