第6講 同じことの横縦の繰り返し(2次元ループ)
第3話 横縦と逆に表現する理由

前話問題
2次元の意味
自然配列を発生させるマクロ解答例
Private Sub CommandButton1_Click()
  Dim i As Byte, j As Byte, k As Byte
  k = 0
  For i = 1 To 10
    For j = 1 To 10
      k = k + 1
      Cells(5 + i, 1 + j) = k
    Next
  Next
End Sub

kは数を数える働きがあります。
数をカウントする変数をカウンターといいます。
本講義は、専門用語を用いないので、
カウンターを『数える数を入れる箱』と名付けます。
kは『数える数を入れる箱』です。
さて、なぜ縦横でなく横縦なのでしょうか。
  For i = 1 To 10
    For j = 1 To 10
      k = k + 1
      Cells(5 + i, 1 + j) = k
    Next
  Next
の(
jはどのように動くでしょうか。
11)→(12)→(13)→(14)→(15)→(16)→(17)→(18)→(19)→(110)→
21)→(22)→(23)→(24)→(25)→(26)→(27)→(28)→(29)→(210)→
31)→(32)→(33)→(34)→(35)→(36)→(37)→(38)→(39)→(310)→
41)→(42)→(43)→(44)→(45)→(46)→(47)→(48)→(49)→(410)→
51)→(52)→(53)→(54)→(55)→(56)→(57)→(58)→(59)→(510)→
61)→(62)→(63)→(64)→(65)→(66)→(67)→(68)→(69)→(610)→
71)→(72)→(73)→(74)→(75)→(76)→(77)→(78)→(79)→(710)→
81)→(82)→(83)→(84)→(85)→(86)→(87)→(88)→(89)→(810)→
91)→(92)→(93)→(94)→(95)→(96)→(97)→(98)→(99)→(910)→
101)→(102)→(103)→(104)→(105)→(106)→(107)→(108)→(109)→(1010

各行はではなくjが動くのです。
実際の動きは、横に
 入門  初心者  基礎    vba

動いていってから、
visual
縦に動くのです。
もっとも、
  For i = 1 To 10
    For j = 1 To 10
      k = k + 1
      Cells(5 +
j, 1 + i) = k
    Next
  Next
と組めば動きは逆になって最初縦に
 basic  2次元 自然配列 

動いてから、
2013横に動きますので、
どちらが先に動くのかは、プログラムの組み方による訳ですが、
イメージとしては横に動いてから縦に動くものとして捉えてほしいのです。
  For i = 1 To 10
    For j = 1 To 10
         ・
         ・
    Next
  Next
の場合先に動くのはjなのです。もう一度(j)の動きを見てください。
11)→(12)→(13)→(14)→(15)→(16)→(17)→(18)→(19)→(110)→
21)→(22)→(23)→(24)→(25)→(26)→(27)→(28)→(29)→(210)→
31)→(32)→(33)→(34)→(35)→(36)→(37)→(38)→(39)→(310)→
41)→(42)→(43)→(44)→(45)→(46)→(47)→(48)→(49)→(410)→
51)→(52)→(53)→(54)→(55)→(56)→(57)→(58)→(59)→(510)→
61)→(62)→(63)→(64)→(65)→(66)→(67)→(68)→(69)→(610)→
71)→(72)→(73)→(74)→(75)→(76)→(77)→(78)→(79)→(710)→
81)→(82)→(83)→(84)→(85)→(86)→(87)→(88)→(89)→(810)→
91)→(92)→(93)→(94)→(95)→(96)→(97)→(98)→(99)→(910)→
101)→(102)→(103)→(104)→(105)→(106)→(107)→(108)→(109)→(1010
先にjが動いていますよね。
For文が入れ子式
  For i = 1 To 10
    For j = 1 To 10
         ・
         ・
    Next
  Next
に入っている場合、最初に働く人形は
中の人形の方なのです。
実際には、縦横の動きはプログラムの組み方による訳ですが、
中の人形の方が先に動くことを強調するために、
縦横でなく横縦とあえて逆に表現しているのです。
最も講義を始めた頃は、同じことの横縦の繰り返しでいくつもりでしたので、
講義の冒頭では縦横になっていますが、
第6講でこのテーマを取り上げるときに、
逆にした方がよいだろうという判断にいったわけです。
この後は横縦に統一したいと思います。






第2話へ 第4話へ

トップ

vc++講義へ

初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
vb講義へ
VB講義基礎へ
初心者のためのJava 入門 基礎から応用まで
数学研究室に戻る