目次
二重ループでコードをカンタンにする
こんにちは。伊川(@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関数にも利用する
対象馬場キーに対応した、ランクを転記したいと思います。
以前は、こんなコードを記載していました。
二重ループで記載する
完成図
ここがポイント
二重ループを覚えるとコードがすっきりします。今まで、とてつもない時間を無駄にしたと思った伊川でした。
まとめ
今回は、競馬ネタでした。
コードの使い方によっては、みなさんの実務でも利用できると思います。
今回のサンプルファイルは、No147です。
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。