マクロnakaji【プログラミング入門】Excelでオセロを作って楽しくプログラミングを学ぼう!6この記事は2016年8月15日に書かれたものです。内容が古い可能性がありますのでご注意ください。等々、プログラミングって結構敷居が高い!気持ちはわかります。私は、最初にJavaを触りましたが、わからなくて何も面白くなかったです。!普段使っているExcelならわかりやすいはず!というわけで、Excelでオセロを作ってプログラミングを楽しく学んでいきましょう。Excelでオセロを作ろう6オセロを作って楽しくプログラミングを学ぼう!第6回では第5回で実装したクリックすると石を置くことに加え、石の色を交互に置くようにしていきます。石を交互に置く方法を考える実装の前にまず石の色を交互に置いていく方法を考えていきます。石の配置順序を見ると下記のようになることがわかります。1手目:白2手目:黒3手目:白4手目:黒5手目:白...こうして一覧でみると法則がわかります。それは...奇数の手では「白」、偶数の手では「黒」が置けています。いうことは...次打つ石が何手目かを数えておいてその値が偶数か奇数かによって置く石の色を変えていけば実装できることがわかります。奇数の手では「白」、偶数の手では「黒」となるようにマクロを記述していきます。内容としては、どちらか判定してその結果で処理を変更するという「条件分岐文」を使用する必要があります。手数のカウントまずは、今が何手目なのかわかるようにしていきます。「標準モジュール」→「othello」を開きます。開いた「othello」へすべてのマクロで共通して使用する変数「stone_count」を準備します。すべてのマクロで使えるようにするには、下記のように書きます。データ型また、ゲームスタート時に「stone_count」を1に戻すようなコードを追記します。1上記二つを「othello」に追記すると下記のような感じになります。これでゲームスタートするたびに手数が1に戻ることになります。次に、石を置いた後に手数を増やすようにしていきます。石を置くときに動くのは、第5回で作成した「BeforeDoubleClick」なので、「sheet1」を開きます。ここに先ほど作成した「stone_count」が動くたびに「+1」されるように書きます。書き方は下記のようになります。1自分自身に「+1」して自分自身を更新していきます。ついでに、本当に増えているかわからないのでメッセージボックスで「stone_count」を表示しておきます(確認後削除してください)。追記すると下記のようになります。ここまで書いたところで、「はじめから」ボタンを押して初期化した後に、どこかセルをダブルクリックして石を置いてみましょう。次の手の数が表示されていくのがわかります。石を交互に配置する手数の取得はできたので、いよいよ石の色を交互に配置していきます。それを実現するために必要になるのが条件分岐です。条件分岐とはある条件によって処理を変えたいときに使用します。条件分岐の書き方ですが以下のようになります。If今回、石の色の判別は手数が奇数か偶数かで判別可能です。よって、手数を2で割って、余りが1ならば奇数、それ以外であれば偶数と判別できます。1」を書き、奇数かを判定します。※「mod」はVBAで割り算の余りを求めるものです。条件式が真の部分に奇数の時の処理を書いていきます。実際にプログラムを書くと以下のようになります。stone書き出す石を管理する変数として「stone」を追加しています。その「stone」に「stone_count(手数)」が奇数かどうかの条件分岐を使用しで入れる石を「○」か「●」か決めていきます。セルへの書き込み内容は第4回で記載した固定値の「○」から変数「stone」に変更しています。保存して、再び「はじめから」ボタンを押して、セルをダブルクリックしてみましょう。これで「○」と「●」を交互に書き込むようにできました。次回は、条件分岐を使用して石を盤外に置けないようにしていきます。