Excel VBAでチェスをつくってみよう(初心者向け)その6

~前回のあらすじ~
駒の動きを関数でまとめてみた。

今回は他の駒を増やすといいましたが、
その前に、まだバグが発生しているので直すことを考えましょう。。。

以下の例を見てください。
ポーンをひたすら上に動かし続けると。。。

水色が上にはみ出しました。
この時点でかなりおかしいですがそれを無視してさらに上に動かすと。。。

エラーがでました。
上にセルがないからですね。

これを修正するには、水色になる範囲を決めてあげる必要があります。

関数を呼び出す側で、水色の範囲をApplication.Intersectで指定し、
戻り値で水色になるセルの行、列の配列を取得します。

関数もがっつり変えちゃいましょう。
行、列の配列の値を返せるよう、FunctionうんぬんAs Long()にします。
上のblueCells()に返してあげます。

最後に白のポーン = 値にしてあげると、行、列の配列が取得できます。
これが戻り値ですね。呼び出し元にこの値を渡します。
これで実行すると。。。

できました。エラーが起きません。

さて、この調子で他の駒も作っていきますよ。

次回(こそ)は、作成したすべての駒の関数をご紹介します。

作ったものはGitHubにおいてありますのでみてね。
ではまた次回!

この記事を書いた人

ym

ゲーム(某カードゲーム含む)と鉄道と水族館で構成されているエンジニア。