VBAオジサンのらくがき帳

#01 はじめてのマクロを作成する

2020-08-01 00:00:00

まず、開発タブを表示させましょう。

このタブはデフォルトでは非表示となっています。Excelのオプションの、リボンのユーザー設定から設定ができます。開発タブの表示がエクセル開発の第一歩となります。 つぎに、左はしにある Visual Basic と書かれたボタンを押してください。あらたに別のウィンドウが開きます。これが VBエディタ です。 ショートカットの Alt+F11 でも開くことが可能で、このショートカットはおぼえるととても便利です。

このVBエディタを使ってマクロを作っていきます。ところで、作業をはじめる前にチェックして欲しい設定があります。VBエディタのツールメニューより、オプションを開き、編集タブをみてください。 この中から、「自動構文チェック」はオフへ、「変数の宣言を強制する」はオンへ、デフォルトの設定から変えておくことをおすすめします。

特に自動構文チェックの方は、デフォルトの設定だとマクロの編集中にイライラさせられることになると思います。

つぎに画面の左がわにある プロジェクトエクスプローラ の中で右クリックして挿入、新規モジュールを選択してください。Module1という名前のモジュールが作成されコードウィンドウが開きますので、ここにコードを追加していきます。 上記の設定変更をおこなっていたら、この状態で1行Option Explicit とだけ表示されていると思います。

コードウィンドウの中で Sub Sample1 と入力し Enter キーを押してください。自動的に () と End Sub が追加されますので、その間に処理を追加します。今回は Range(“A1”).Value = 1 と入れてみましょう。 出来上がりは以下のとおりです。(インデントには Tab キーをつかいますが、デフォルトの設定では自動的に スペース 4個に変換されます。)

Sub Sample1()
    Range("A1").Value = 1
End Sub

これではじめてのマクロは完成です。Sub と End Sub の間の行にカーソルをおいたまま、標準ツールバーの中にある右三角ボタンを押すと、このマクロを実行することができます。 実行すると A1 セルに 1 という値が入力されます。1 の代わりに文字列 “ABC” を使っても同様に入力されます(文字列の場合は ” でかこまなくてはいけません。)

この処理について補足すると、(暗黙的に)現在選択されているシートの、文字列値 “A1” でしめされる Range オブジェクトの Valueというプロパティ(属性)に、数値 1 を設定するという処理になります。 (このように短いコードでもオブジェクト、プロパティ、値のつかわれかたに注目すると、より VBA の理解が深まるのではないかと思います。)