第7講 For文を入れ子式に使い多次元ループを実現する
第1話 For文の入れ子式利用による2次元ループ

第6講第11話以降においては1次元のFor文を工夫して、
実質2次元ループ処理を実現したため、

    If a = 8 Then
      
w = Cells(20, 1) * Cells(20, 2) * Cells(20, 3) * Cells(20, 4) * Cells(20, 5) * Cells(20, 6) * Cells(20, 7) * Cells(20, 8) * Cells(20, 9)
      If w = 1 Then Cells(7 + s, 18) = "○" Else Cells(7 + s, 18) = "×"
      
Cells(20, 1) = 0
      Cells(20, 2) = 0
      Cells(20, 3) = 0
      Cells(20, 4) = 0
      Cells(20, 5) = 0
      Cells(20, 6) = 0
      Cells(20, 7) = 0
      Cells(20, 8) = 0
      Cells(20, 9) = 0

      w = 1
    End If

というでおしゃれでないコードができてしましました。
第6講の第11話以降のような工夫をしなくても、
For文を入れ子式に使えば、
2次元ループ処理などの多次元ループ処理が可能です。

最初は次のような簡単なマクロを組んでみましょう。
白紙の状態入門から、
実行ボタンを押すと
VBA
○が100個表示されるマクロです。
ご自分で最初からお作りになっても結構ですが、
一応参考ファイルを添付しておきます。
今回は消去ボタンのコードだけは入れてありますが、
例によって実行ボタンのコードは空になっています。
魔方陣
消去ボタンの方は、
いちいちコードを変更しなくても良いように、
5行目から200行までクリアするようになっています。

ここまでついてこられた皆さんですから、
必要のない説明かも知れませんが、
例えば、B5に○を入れるときは、
Cells(5, 2) = "○"
でしたね。
入れ子式に入れるとはどういうことでしょうか。
それは、
  For i = 1 To 10
    For j = 1 To 10
       ・
       ・
       ・
    Next
  Next
のようにすることです。
さあ、皆さん実行ボタンのコードを考えましょう。
       ・
       ・
       ・
となっていますが、実際には1行です。

第6講第21話へ 第2話へ


トップ

初心者のためのc++ vc++ c言語 入門 基礎から応用までへ
初心者のための excel 2007 2010 2013 vba マクロ 入門 基礎から応用まで
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
vb講義トップへ
VB講義基礎へ
専門用語なしのC++入門へ
専門用語なしのJava入門へ
専門用語なしのVBA入門

数独のページ
魔方陣のページ
数学研究室に戻る
本サイトトップへ