2
2

VBAで将棋ゲームを作成してみよう ①初めてのマクロ作成と環境設定

Posted at

最近何かとVBAを触る機会があり、感動しているので記事にしたいと思います。
知識として定着させるには、「人に教える」というのが1番だと感じているので今回は誰でも作成できることを優先したいと思います。
やはりトラブルシューティングできる人はかっこいいですよね〜♪

事前準備

  • Excelを開く→名前をつけて保存→ファイルの種類を「Excel マクロ有効ブック(*.xlsm)」に変更してください。
  • Excelのメニューから「ファイル」→「オプション」→「リボンのユーザー設定」→右側の「開発」チェックボックスにチェックをつけて「OK」をクリックしてください。
    「開発」タブが追加されます。
  • 「開発」→「Visual Basic」→「挿入」→「標準モジュール」を選択します。

9行×9列の将棋盤の作成

  • 将棋盤は9×9のマスを使用するので、それを「・」で表現します。
  • 下記のコードを先程の「標準モジュール」に貼り付けてください。
  • 「ファイル」→「終了してMicrosoft Excelへ戻る」→「開発」→「マクロ」→「SetupShogiBoard」→「実行」を選択してください。
Sub SetupShogiBoard()
    Dim 行 As Integer, 列 As Integer
    For 行 = 1 To 9
        For 列 = 1 To 9
            Cells(行, 列).Value = "・"
        Next 列
    Next 行
End Sub

コードの説明

Sub SetupShogiBoard()
  • これから「SetupShogiBoard」という名前の仕事をします!という宣言です。
    なので「SetupShogiBoard」は変更可能です。
  • ()は引数を指定する場所ですが、今回は空です。
Dim 行 As Integer, 列 As Integer
  • 「Dim」は変数を宣言するという意味です。変数とはデータを一時的に保存する箱だと思ってください。
  • 今回は変数として「行」「列」としています。今回は分かりやすいように日本語を使用していますが、基本的には英語をオススメします。
  • 「As」は省略可能ですが、何のデータ型が格納されてあるか分からなくなるのでエラーの原因になります。
  • 「Integer」はデータの種類です。「行」と「列」の変数が整数を持つことを表しています。
  • 「,」は複数の変数を一度に宣言することができます。
For 行 = 1 To 9
    For 列 = 1 To 9
        Cells(行, 列).Value = "・"
    Next 列
Next 行
  • 「For」はこれから繰り返し処理をするという意味です。
    今回でいうと、各セルに「・」を入れる処理です。
  • 「For 行 = 1 To 9」
    1行目から9行目まで一つずつ順に繰り返します。
  • 「For 列 = 1 To 9」
    1列目から9列目まで一つずつ順に繰り返します。
  • 「Cells(行, 列).Value = "・"」は特定のセルに「・」を入れる操作です。
    「Cells」:エクセルのセルです。
    「(行, 列)」:行と列の番号を指定します。例えば「Cells(1, 1)」であればA1セルです。今回は繰り返し処理で指定してあります。
    「.Value」:そのセルの中身(値)です。
    「= "・"」:行と列で指定したセルに「・」をいれてくれます。
  • 「Next 列」:現在の列の処理が終わったら次の列に進みます。
  • 「Next 行」:現在の行のすべての列の処理が終わったら、次の行に進みます。
  • 「End Sub」:この仕事終わり!ってことです。

実行結果

将棋1.png

今回はここまで

さて、ただセルに「・」が入っただけですが、見方を変えれば便利(?)だなと感じます。
次のステップでは、将棋らしくなってくると思います。

2
2
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
2
2