2重ループの正体を理解するための基本 − GoGoマクロ!のWebサイト

HOME > レベルアップ > 2重ループ

2重ループの正体を理解するための基本


データの照合(突合せ)では避けて通れない「2重ループ処理」について、 ちょっとその基本を学んで置きたいと思います。

まず、前回もやったシート間のデータの”1対多”での照合では、ループの基本形として


  For i = 1 To 10
    ある処理
  Next i


これは、すなわち「1重のループ処理」です。

なので、今回勉強する「2重ループ処理」というものは、


  For j = 1 To 10
    データ設定
    For i = 1 To 10
      ある処理
    Next i
  Next j


と、このような形になります。

今回わかりやすく、これを新たに「2重ループの基本形」と定めて、 以降の解説を行っていくことにしたいと思います。


さて、ここでちょっと問題です!

この「2重ループの基本形」を実行すると、「ある処理」にあたる部分は 計何回実行されることになるでしょうか?

     ・
     ・
     ・

答えは、ずばり100回です。

お解かりになりましたか?

単純に、10×10なので、イコール100回となります。
10×2なので20回!と答えてしまった人はいませんでしたか!?

実は、ここが2重ループの重要なポイントです。

詳しく解説しますと、

まず、外側のループで j=1 の時に、内側のループでは i が1から10まで 10回繰り返し「ある処理」を行ないます。
次に、外側のループで j=2 の時に、内側のループでは i が1から10まで 10回繰り返し「ある処理」を行ないます。
(呼び名として、i の方のループのことを「内側のループ」 j の方のループ のことを「外側のループ」と一般的に呼んでいます。)

以下同様に、j=10 まで行ないます。 なので、「ある処理」は10×10回実行されることになります。


で、これは何に応用されるのか?といいますと、”多対多”のデータ照合に です。

”1対1”のデータ照合であれば、ループは必要ありません。
”1対多”のデータ照合であれば、ループは1つ必要です。

よって、

”多対多”のデータ照合であれば、ループは必ず2つ必要となる。
というわけで、これがデータ照合での2重ループの正体です。


NEXT >>
ループ処理の基本形
データのある最後の行までループさせる方法
For文とDo文の使い分けについて



 

読者数1万人達成しました!

エクセルで 最大級の
メールマガジン。
まぐまぐ殿堂入り

最新号は 今すぐ ↓↓↓ 登録

メールアドレス:

Powered by
まぐまぐ

完全まぐまぐ配信なので登録安心です!


エクセルマクロの検定のページ