またまたエクセルのvbaです。懲りずにやってます。


For文の基本として、


For 変数 = 数A to   数B


(作業内容)


Next


このように書きます。


こうすると、

変数の値が数Aから数Bになるまで、作業内容を繰り返してくれます。数Aは数Bより小さい数で、1つの作業が終わるごとに数Aに+1されていきます。


オセロのマスは8×8マスで正方形に構成されているので、全部のマスについてコマを置けるか判定してもらうには、

全てのマス(8×8)で計64ヶ所で判定作業を繰り返してくれたらいいですよね。


エクセルのマスは行と列の2つの数値でただ1つに決まります。

1行目1列目なら(1,1)と表せ、A行目B列目なら(A,B)です。


(1,1)のとき,(1,2)のとき,.....(1,8)のとき,(2,1)のとき,(2,2)のとき...........


こんな感じで作業が進められていくようにするには、


(a,b)となるように変数を用意して、


For a = 1 to 8


For b = 1 to 8


(置けるか判定する作業)


Next


Next


とすれば、先ほどの順に置けるか判定作業を繰り返してくれる命令となりますね。


上から1つずつ手続きを確かめてみると確かにそのように作業が進まれていくことがわかります。


では、この置けるかどうかのプログラムはどうしようか?


もちろん、白か黒かコマが置かれているマスには置けないので、最初の条件は、マスにコマがあるかないかを判定させた方がいいと考えます。


その時に有効なのがif文です。


この構文を使って、どの場合の時にどの様な作業をするのがいいのか考えていきます。