オセロをVBAで作成 #3石を置いた座標と石の種類をコレクションに代入
今回はタイトルにもある通り石を置いた座標とどっちの色の石があるかをコレクションに代入して
その情報をメッセージで表示させたいと思います。
Public stone_collection As New Collection '盤面の石の状況を保存するコレクション
まずプロシージャ外でひっくり返す判定を行うのを考慮してPublic型でコレクションを宣言しました。
'コレクションの初期化
Set stone_collection = New Collection
最初に初期化の文を記述しておきます。これでコレクション内の要素が引き続き入り続けることはなくなります。
'盤面情報をコレクションに保存
With stone_collection
.Add cell_click_row
.Add cell_click_column
.Add stone
End With
石を置くコードの跡にダブルクリックした行と列の座標と置いた石の種類をコレクションに代入します。
'コレクションに入れた要素を表示
For Each v In stone_collection
MsgBox v
Next
For Each文を使ってコレクションの中身をMsgBoxで入っている要素分繰り返し表示します。
For Each文とは配列やコレクションの中身の文だけ繰り返すループ文です。
'要素数の出力表示
MsgBox "要素数: " & stone_collection.Count, vbInformation
まとめ
コレクションとFor Eachを初めて使ったのでこれだけの処理をするだけで結構手間取りました。
次からが本番でコレクションに保存した石の座標と色のデータを使ってひっくり返す処理を行っていきたいと思います。