二重ループでコードをカンタンにする

こんにちは。伊川(@naonaoke)です。

今回は、私の趣味である競馬ネタです。


この書籍の内容を、どうしても、Excelで表現したかったのです。

ループを使うことで、カンタンに表現できることが分かったのです。

その内容を紹介します。

この記事は、二重ループを理解したい人にお勧めです。




二重ループ

ループは、難しいですよね。

その難しさが、VBAで挫折する原因となります。

単純なループに関しては、上の記事を参照してください。




二重ループ 作業手順 その1 データベース確認


左の図で、3つのセルに分かれた、【中山 T 2000】を【中山T2000】にしたいと思います。

そして、条件があり、18列毎に登場します。

そのコードをどのように表現するかという事です。




二重ループ 作業手順 その2 今までのコード

以前は、私は、このコードを記載していました。

しかし、何度見ても、無駄の多いコードです。

二重ループ 作業手順 その3 失敗したコード

このコードは失敗例です。

3重ループにしました。

しかし、このコードを実行しても、なにも起こりません。




二重ループ 作業手順 その4 二重ループでコードを記載

For j = 24 To 96 Step 17

For x = 112 To 115

原因 j、xは同時に増えます。

だから、xをjの入れ子にしないという事です。

入れ子は、かっこよく書くとネストのことです。

入れ子の例



このように記載しても、作動するわけがありません。


ここの処理が重要です。

下記の順番を守らないと作動しません。






二重ループ 作業手順 その5 INDEX関数とMATCH関数にも利用する

対象馬場キーに対応した、ランクを転記したいと思います。


以前は、こんなコードを記載していました。

二重ループで記載する


完成図






ここがポイント

ここがポイント
Function8.png
二重ループを覚えるとコードがすっきりします。今まで、とてつもない時間を無駄にしたと思った伊川でした。

 




まとめ

今回は、競馬ネタでした。

コードの使い方によっては、みなさんの実務でも利用できると思います。

 

今回のサンプルファイルは、No147です。

ネットや基本書で調べるはやめてください

わからない事を延々と考えるのは、無駄です。

  • なんで作動かないの?
  • もうやだ!VBAなんか嫌い!
  • ネットで調べても情報がない!

必ず作動するコードが、ここにあります。

スポンサーリンク

Twitterでフォローしよう

おすすめの記事