第6講 同じことの横縦の繰り返し(2次元ループ)
第2話 なぜ縦横と呼ばず横縦なの?



入門
同じことの繰り返し(1次元ループ)によるプログラム例
Private Sub CommandButton1_Click()
  Dim i As Byte
  For i = 1 To 10
    Cells(6, 1 + i) = Int(100 * Rnd())
  Next
  For i = 1 To 10
    Cells(7, 1 + i) = Int(100 * Rnd())
  Next
  For i = 1 To 10
    Cells(7, 1 + i) = Int(100 * Rnd())
  Next
  For i = 1 To 10
    Cells(8, 1 + i) = Int(100 * Rnd())
  Next
  For i = 1 To 10
    Cells(9, 1 + i) = Int(100 * Rnd())
  Next
  For i = 1 To 10
    Cells(10, 1 + i) = Int(100 * Rnd())
  Next
  For i = 1 To 10
    Cells(11, 1 + i) = Int(100 * Rnd())
  Next
  For i = 1 To 10
    Cells(12, 1 + i) = Int(100 * Rnd())
  Next
  For i = 1 To 10
    Cells(13, 1 + i) = Int(100 * Rnd())
  Next
  For i = 1 To 10
    Cells(14, 1 + i) = Int(100 * Rnd())
  Next
End Sub
同じことの横縦の繰り返し=2次元ループによるプログラム例
Private Sub CommandButton1_Click()
  Dim i As Byte, j As Byte
  For i = 1 To 10
    For j = 1 To 10
      Cells(5 + i, 1 + j) = Int(100 * Rnd())
    Next
  Next
End Sub

2つを並べると、横縦の繰り返すの方がずっとすっきりしています。
普通、横と縦をいうとき縦横と表現します。
本講義では意図的に逆にしています。
日常生活では、
横の並び初心者
縦の並び基礎
列と表現することが多いわけですが、
数学の世界やプログラミングの世界では、
横の並びvbaを行、
縦の並び2次元ループを列といいます。
横の並びと縦の並びループ処理があるとき、
行列と呼びます。
Cells( i , j )は行列に対応していて、iが行、jが列を表す番号だったわけです。
本講義で縦と横の並びを縦横と呼ばずに横縦と呼んでいる理由の1つは、
行列と対応させるためです。
実は、逆にしているのはもっと本質的な理由があります。

行列(横縦)の意味を理解していただくために、
次のようなマクロを組んでみましょう。
実行ボタンを押すと
2次元の意味
難しいので、ヒントを書いておきましょう。
Byte型の箱を3つ用意して、
そのうちの1つは、累積を数える数を入れる箱とします。


第1話へ 第3話へ

トップ

vc++講義へ

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