プログラミングの勉強 その5ループ1

年収アップの方法

人に任せると間違いやすい単純作業を、機械にやらせる時に便利なのがループ文です。

 

ループ文は繰り返しの処理ができるもので、いくつか種類がありますが

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 文

を組み合わせるだけで、人間に近い仕事ができるようになります。

 

二重ループ

ループの中に、更にループを作る事ができます。

想像すると難しく感じてしまうので、今は構造を考えないで下さい。

 

これでできるのは、例えばフォルダ内のエクセルファイルの一つ一つから、データを取り出して処理をさせたりなどです。

 

ここまで出来ると、人手が完全にいらなくなります。

わたしはタイマーで起動するプログラムを作り、全自動で仕事をさせたりしました。

 

人手が減らせた分は、わたしの収入になりました。

学校の勉強は点数の成果がわかりにくいですが、社会人の勉強は明確な成果で返ってきます。

 

 

 

システム設計(難しくないです)についても書きました!

システム設計の考え方【その1 観察が重要】
普通の社会人が接するシステム設計は、NASAのロケット軌道予測プログラムみたいなものではなくもっと身近なものです。 なので人の顔色をうかがうとか、じっくり考える内向的な人でも稼ぎやすい分野です。 設計で一番最初に...