Dim a3a As Byte, a3s As Byte 'a3aはaを3で割った余り。a3sはaを3で割った余り。aはiを9で割った余り。
Dim s3a As Byte, s3s As Byte 's3aはsを3で割った余り。s3sはsを3で割った余り。sはiを9で割った余り。
v = 1
For i = 0 To 80
a = i Mod 9 'aは内側の正方形の番号 ただし、0から番号が割り振られています。
s = Int(i / 9) 'sはブロックの番号 ただし、0から番号が割り振られています。
a3a = a Mod 3 'a3aは内側の正方形の横を制御する変数 a3s = Int(a / 3) 'a3s は内側の正方形の縦を制御する変数
s3a = s Mod 3 's3aはブロックの横を制御する変数
s3s = Int(s / 3) 's3sはブロックの縦を制御する変数
v = v * CLng(Cells(7 + 3 * s3s + a3s, 9 + 3 * s3a + a3a))
If a = 8 Then
Cells(17 + s3s, 5 + 6 * s3a) = "第"
Cells(17 + s3s, 6 + 6 * s3a) = s + 1
Cells(17 + s3s, 7 + 6 * s3a) = "ブロック"
If v = x Then Cells(17 + s3s, 9 + 6 * s3a) = "○" Else Cells(17
+ s3s, 9 + 6 * s3a) = "×"
v = 1
End If
Next
トレースその2
1回目のループによって、vに
9
10
11
12
13
14
15
16
17
7
7
6
5
4
8
3
9
1
2
8
1
4
8
9
2
5
7
6
3
9
2
3
9
7
6
1
4
5
8
10
3
2
4
1
7
6
5
8
9
11
5
9
1
8
3
4
6
2
7
12
8
7
6
5
9
2
1
3
4
13
9
1
2
6
4
8
3
7
5
14
4
5
3
2
1
7
8
9
6
15
6
8
7
3
5
9
2
4
1
の
7
が入りました。
この状態で、2回目のループに入ります。
i = 1(2回目のループ)のとき
a = 1 Mod 9
s = Int(1 / 9) は
a = 1 Mod 9
s = Int(1 / 9)
から
a = 1
0
1
2
3
4
5
6
7
8
(番号を0から割り振っています。色が対応させてあります。) s = 0
0
1
2
3
4
5
6
7
8
(ブロック番号を0から割り振っています。色が対応させてあります。)
ですから、
a3a = a Mod 3 'a3aは内側の正方形の横を制御する変数
a3s = Int(a / 3) 'a3s は内側の正方形の縦を制御する変数
s3a = s Mod 3 's3aはブロックの横を制御する変数
s3s = Int(s / 3) 's3sはブロックの縦を制御する変数
は
a3a = 1 Mod 3 'a3aは内側の正方形の横を制御する変数
a3s = Int(1 / 3) 'a3s は内側の正方形の縦を制御する変数
s3a = 0 Mod 3 's3aはブロックの横を制御する変数
s3s = Int(0 / 3) 's3sはブロックの縦を制御する変数
から
a3a = 1 a3s = 0
0
1
2
0
0
1
2
1
3
4
5
2
6
7
8
(茶色がa3aに対応 紫がa3sに対応)
s3a = 0
s3s = 0
0
1
2
0
0
1
2
1
3
4
5
2
6
7
8
(茶色がs3aに対応 紫がs3sに対応)
次の
v = v * CLng(Cells(7 + 3 * s3s + a3s, 9 + 3 * s3a + a3a))
は
v = v * CLng(Cells(7 + 3 * 0 + 0, 9 + 3 * 0 + 1))
から
v = v * CLng(Cells(7, 10))
9
10
11
12
13
14
15
16
17
7
7
6
5
4
8
3
9
1
2
8
1
4
8
9
2
5
7
6
3
9
2
3
9
7
6
1
4
5
8
10
3
2
4
1
7
6
5
8
9
11
5
9
1
8
3
4
6
2
7
12
8
7
6
5
9
2
1
3
4
13
9
1
2
6
4
8
3
7
5
14
4
5
3
2
1
7
8
9
6
15
6
8
7
3
5
9
2
4
1
(7は
7
に対応)
(10は
10
に対応)
は
v = 7 * 6
(6は
6
です。)
から
v = 42
aは0ですから、
If a = 8 Then
Cells(17 + s3s, 5 + 6 * s3a) = "第"
Cells(17 + s3s, 6 + 6 * s3a) = s + 1
Cells(17 + s3s, 7 + 6 * s3a) = "ブロック"
If v = x Then Cells(17 + s3s, 9 + 6 * s3a) = "○" Else Cells(17
+ s3s, 9 + 6 * s3a) = "×"
v = 1
End If
は遂行されません。
そして、
Next
によって3回目のループと相成ります。
2回目終了時点では
7
6
の2つがかけられv = 7×6が実現しています。
i = 2(3回目のループ)のとき
a = 2 Mod 9
s = Int(2 / 9) は
a = 2 Mod 9
s = Int(2 / 9)
から
a = 2
0
1
2
3
4
5
6
7
8
(番号を0から割り振っています。色が対応させてあります。) s = 0
0
1
2
3
4
5
6
7
8
(ブロック番号を0から割り振っています。色が対応させてあります。)
ですから、
a3a = a Mod 3 'a3aは内側の正方形の横を制御する変数
a3s = Int(a / 3) 'a3s は内側の正方形の縦を制御する変数
s3a = s Mod 3 's3aはブロックの横を制御する変数
s3s = Int(s / 3) 's3sはブロックの縦を制御する変数
は
a3a = 2 Mod 3 'a3aは内側の正方形の横を制御する変数
a3s = Int(2 / 3) 'a3s は内側の正方形の縦を制御する変数
s3a = 0 Mod 3 's3aはブロックの横を制御する変数
s3s = Int(0 / 3) 's3sはブロックの縦を制御する変数
から
a3a = 2 a3s = 0
0
1
2
0
0
1
2
1
3
4
5
2
6
7
8
(茶色がa3aに対応 紫がa3sに対応)
s3a = 0
s3s = 0
0
1
2
0
0
1
2
1
3
4
5
2
6
7
8
(茶色がs3aに対応 紫がs3sに対応)
次の
v = v * CLng(Cells(7 + 3 * s3s + a3s, 9 + 3 * s3a + a3a))
は
v = v * CLng(Cells(7 + 3 * 0 + 0, 9 + 3 * 0 + 2))
から
v = v * CLng(Cells(7, 11))
9
10
11
12
13
14
15
16
17
7
7
6
5
4
8
3
9
1
2
8
1
4
8
9
2
5
7
6
3
9
2
3
9
7
6
1
4
5
8
10
3
2
4
1
7
6
5
8
9
11
5
9
1
8
3
4
6
2
7
12
8
7
6
5
9
2
1
3
4
13
9
1
2
6
4
8
3
7
5
14
4
5
3
2
1
7
8
9
6
15
6
8
7
3
5
9
2
4
1
(7は
7
に対応)
(10は
11
に対応)
は
v = 42 * 5
(5は
5
です。)
から
v = 210
aは0ですから、
If a = 8 Then
Cells(17 + s3s, 5 + 6 * s3a) = "第"
Cells(17 + s3s, 6 + 6 * s3a) = s + 1
Cells(17 + s3s, 7 + 6 * s3a) = "ブロック"
If v = x Then Cells(17 + s3s, 9 + 6 * s3a) = "○" Else Cells(17
+ s3s, 9 + 6 * s3a) = "×"
v = 1
End If
は遂行されません。
そして、
Next
によって4回目のループと相成ります。
3回目終了時点では
7
6
5
の3つがかけられv = 7×6×5が実現しています。
i = 3(4回目のループ)のとき
a = 3 Mod 9
s = Int(3 / 9) は
a = 3 Mod 9
s = Int(3 / 9)
から
a = 3
0
1
2
3
4
5
6
7
8
(番号を0から割り振っています。色が対応させてあります。) s = 0
0
1
2
3
4
5
6
7
8
(ブロック番号を0から割り振っています。色が対応させてあります。)
ですから、
a3a = a Mod 3 'a3aは内側の正方形の横を制御する変数
a3s = Int(a / 3) 'a3s は内側の正方形の縦を制御する変数
s3a = s Mod 3 's3aはブロックの横を制御する変数
s3s = Int(s / 3) 's3sはブロックの縦を制御する変数
は
a3a = 3 Mod 3 'a3aは内側の正方形の横を制御する変数
a3s = Int(3 / 3) 'a3s は内側の正方形の縦を制御する変数
s3a = 0 Mod 3 's3aはブロックの横を制御する変数
s3s = Int(0 / 3) 's3sはブロックの縦を制御する変数
から
a3a = 0 a3s = 1 (はじめてa3sが動きました。)
0
1
2
0
0
1
2
1
3
4
5
2
6
7
8
(茶色がa3aに対応 紫がa3sに対応)
s3a = 0
s3s = 0
0
1
2
0
0
1
2
1
3
4
5
2
6
7
8
(茶色がs3aに対応 紫がs3sに対応)
次の
v = v * CLng(Cells(7 + 3 * s3s + a3s, 9 + 3 * s3a + a3a))
は
v = v * CLng(Cells(7 + 3 * 0 + 1, 9 + 3 * 0 + 0))
から
v = v * CLng(Cells(8, 9))
9
10
11
12
13
14
15
16
17
7
7
6
5
4
8
3
9
1
2
8
1
4
8
9
2
5
7
6
3
9
2
3
9
7
6
1
4
5
8
10
3
2
4
1
7
6
5
8
9
11
5
9
1
8
3
4
6
2
7
12
8
7
6
5
9
2
1
3
4
13
9
1
2
6
4
8
3
7
5
14
4
5
3
2
1
7
8
9
6
15
6
8
7
3
5
9
2
4
1
(8は
8
に対応)
(9は
9
に対応)
は
v = 210 * 1
(1は
1
です。)
から
v = 210
aは0ですから、
If a = 8 Then
Cells(17 + s3s, 5 + 6 * s3a) = "第"
Cells(17 + s3s, 6 + 6 * s3a) = s + 1
Cells(17 + s3s, 7 + 6 * s3a) = "ブロック"
If v = x Then Cells(17 + s3s, 9 + 6 * s3a) = "○" Else Cells(17
+ s3s, 9 + 6 * s3a) = "×"
v = 1
End If
は遂行されません。
そして、
Next
によって5回目のループと相成ります。