LoginSignup
0
0

More than 3 years have passed since last update.

オセロをVBAで作成 #3石を置いた座標と石の種類をコレクションに代入

Posted at

オセロを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

要素が何個入ってるかMsgBoxで表示させてます。
2019-10-21 (5).png
2019-10-21 (6).png
2019-10-21 (7).png
2019-10-21 (8).png

まとめ

コレクションとFor Eachを初めて使ったのでこれだけの処理をするだけで結構手間取りました。
次からが本番でコレクションに保存した石の座標と色のデータを使ってひっくり返す処理を行っていきたいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0