IT情報@PRO人

【プログラミング入門】Excelでオセロを作って楽しくプログラミングを学ぼう!③


「プログラミングに興味があるけど…」
「VBAを使って作業を効率化できたらなぁ」
「プログラミング勉強したけどわからん(´・ω・)」

等々、プログラミングって結構敷居が高い!
気持ちはわかります。私は、最初にJavaを触りましたが、わからなくて何も面白くなかったです。。
でも!普段使っているExcelならわかりやすいはず!
というわけで、Excelでオセロを作ってプログラミングを楽しく学んでいきましょう。

Excelでオセロを作ろう③


オセロを作って楽しくプログラミングを学ぼう!
第3回では第2回で作成したマクロの中に真ん中に黒白の石を置いていきます。

マクロの内容追記

Microsoft Visual Basic for Applicationsの起動

前回起動しましたが一応おさらいとして、もう一度起動方法を記述しておきます。
Excelを使っている状態でキーボードの「Alt」と「F11」を同時に押しましょう。

セルへ書き込み

マクロによるセルへの文字の書き込み方法ですが以下のような構文を使用します。


Cells(行番号, 列番号).Value = "文字"

この構文を書くことでセルへ文字を書き込むことができます。
前回作成したマクロのプロシージャのメッセージ出力の下に追記しましょう。

1_セル書き換え

第一回目の通りにオセロ版を作成しているのであれば、6行目の5列目が真ん中4マスの左上のマスになります。
そこに対して「○」を入れていきます。
※「’」から始まっている行はコメント行です。VBAでコメントはこのようにかきます。また、この行はプログラムとしては処理と関係ありません。

実際に「はじめから」の図形をクリックしてみましょう。
メッセージが表示されたあとに「○」がセルに書き込まれるはずです。

1_セル書き換え2

それ以外の真ん中の石も配置されるようにしていきます。
左上が6行目の5列目だったのでその他の石は以下のようになります。

  • 右上:6行目の6列目
  • 左下:7行目の5列目
  • 右下:7行目の6列目

2_初期配置処理

「はじめから」ボタンをクリックしてみましょう!

2_初期配置処理_2

盤の左上を表す「定数」を定義する

とりあえず初期の石を配置することができましたが、ちょっと待ってください!
このままだと、オセロ盤を移動したとき(例えばC列を盤の左上にするなど)に修正箇所が多くなります。。
そこで、定数というものを使って場所を表現していきましょう。
具体的に何をするかというと、盤の左上のセルの行と列から真ん中の四マスを計算して出そうという話です。
まずは左上のセルの値を「定数」を使用して表現します。
VBAで定数は下記のように定義していきます。

Const 名前 As データ型 = 値

ここでいう変数名とは、定義したあとプログラム内で使うための名前になります。
データ型とは、PCは1と言われてもそれが数字なのか1という文字なのか判断できないです。
※わかりやすい例だと1+1は文字だと11に認識したりします。
データ型はこれが何なのかを判断するためのものになります。

今回は数字型(Integer)の定数を二つ「LEFT_TOP_ROW」と「LEFT_TOP_COLUMN」を用意しました。
その値は、盤の左上を表すので「行(LEFT_TOP_ROW):3行目」「列(LEFT_TOP_COLUMN):2」を設定します。

3_定数の定義

真ん中の4マスの左上を表す「変数」を定義する

次に真ん中の4マスの左上を表現していきます。
上記で定義した定数(盤の左上を表現している)から割り出す動的な値である「変数」を作成していきます。
定数との違いは中身を変えることができるかどうかです。
変数は下記のように定義していきます。

Dim 名前 As データ型

定数と名前の前の部分が違います。そして、値を最初に入れておく必要はないです。
今回は、真ん中のマスの左上を表す「center_row」と「center_column」を定義しました。

4_変数の定義

真ん中4マスの左上の行と列を計算する

定義した真ん中4マスの左上の行と列を表す変数に値を入れていきましょう。
値の入れ方は下記のようになります。

変数の名前 = 値

さっそく設定してみましょう。
真ん中の4マスの左上のセルは盤の左上の行に+3、列に+3で表現することができます。
プログラムで表現すると以下のようになります。

5_真ん中の左上の位置計算

真ん中4マスの左上以外の行と列を計算して石を書き出す

真ん中4マスの左上が表現できたので、右上(列に+1)、左下(行に+1)、右下(行と列に+1)で初期配置位置を表現していきます。
変数に値を入れなくても、直接書けば計算結果が反映されるので以下のようになります。

6_配置位置を計算で算出

いったん真ん中4マスにある「○」と「●」を消して、「はじめから」ボタンをクリックしてみましょう!

2_初期配置処理_2

問題なく配置されていれば成功です!!

次回の予定


次回は、配置だけでなく盤の上の石をすべて初期状態に戻すような処理を実装していきます。

記事一覧


【プログラミング入門】Excelでオセロを作って楽しくプログラミングを学ぼう!①
【プログラミング入門】Excelでオセロを作って楽しくプログラミングを学ぼう!②
【プログラミング入門】Excelでオセロを作って楽しくプログラミングを学ぼう!③
【プログラミング入門】Excelでオセロを作って楽しくプログラミングを学ぼう!④
【プログラミング入門】Excelでオセロを作って楽しくプログラミングを学ぼう!⑤
【プログラミング入門】Excelでオセロを作って楽しくプログラミングを学ぼう!⑥
【プログラミング入門】Excelでオセロを作って楽しくプログラミングを学ぼう!⑦
【プログラミング入門】Excelでオセロを作って楽しくプログラミングを学ぼう!⑧
【プログラミング入門】Excelでオセロを作って楽しくプログラミングを学ぼう!⑨
【プログラミング入門】Excelでオセロを作って楽しくプログラミングを学ぼう!⑩
【プログラミング入門】Excelでオセロを作って楽しくプログラミングを学ぼう!⑪
【プログラミング入門】Excelでオセロを作って楽しくプログラミングを学ぼう!⑫
【プログラミング入門】Excelでオセロを作って楽しくプログラミングを学ぼう!⑬
【プログラミング入門】Excelでオセロを作って楽しくプログラミングを学ぼう!⑭
【プログラミング入門】Excelでオセロを作って楽しくプログラミングを学ぼう!⑮

  • このエントリーをはてなブックマークに追加

PAGE TOP