第6講 If文(分岐)を理解しよう

第14話 1次元のFor文で2次元ループをする方法による行部分の改良


行部分の改良例

c

Private Sub CommandButton1_Click()
  Dim w As Byte, i As Byte, h As Byte
  Dim s As Byte, a As Byte, k As Byte '最初から使うので中程から移動
  h = 1
  w = 0
  k = Int(6 * (6 * 6 + 1) / 2) '毎回計算させないようにするため
  For i = 0 To 35
    a = i Mod 6
    s = Int(i / 6)
    w = w + Cells(7 + a, 1 + s)
    If a = 5 Then
      If h = 1 Then If w <> k Then h = 0
      Cells(13, 1 + s) = w
      w = 0
    End If
  Next
  w = 0
 
For i = 0 To 35
    a = i Mod 6
    s = Int(i / 6)
    w = w + Cells(7 + s, 1 + a)
    If a = 5 Then
      If h = 1 Then If w <> k Then h = 0
      Cells(7 + s, 7) = w
      w = 0
    End If
  Next

  w = 0
       ・
       ・
       ・
End Sub
Private Sub CommandButton2_Click()
  Range("A13:F16").Select
  Selection.ClearContents
  Range("G7:G12,I16:v19,R7:R15").Select
  Selection.ClearContents
  Range("A1").Select
End Sub

参考ファイル


さて、次の課題です。
魔方陣部分を参考にして、
数独部分の列と行の判定部分を1次元のFor文で2次元ループをする方法によって改良してください。

13話へ 第15話へ


トップ

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

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