最初にこれだけは

VBAの準備から保存まで

 VBA という言語を使ってマクロを作るうえで、初心者が最初に抱く疑問として

  1. エクセルVBAはどこに書くのか
  2. VBA はどうやって書くのか
  3. 書いたVBA はどうやって動かすのか
  4. 書いたVBA はどうやって保存するのか

こうしたことがあります。

 VBA 独特の用語を知る前に、マクロを作る際のこうした一連の作業の流れを知る必要があります。
この流れについて、その手順を解説します。

VBA はどこに書く?

まず普通に Excelを開きます。

 既に VBA のための環境初期設定が済んでいるなら、上部に「開発」のタブがあるはずです。

※ 上部バーの「表示」タブと「ヘルプ」タブの間に「開発」が無い場合は 環境初期設定 の「開発タブ」の表示方法 を確認して実行してください。

この「開発」タブをクリックします。
左の「Visual Basic」か「コードの表示」をクリックします。
※ キーボードの 「Altキー」を押したまま「F11」を押してもかまいません。

下記の画面が出てきます。

上の「表示」タブを押します。

プロジェクトエクスプローラー(P)を押します。

左に「プロジェクトウィンドウ」が表れます。
名前は覚えなくて結構です。

もう一度「表示」タブを押して、プロパティウィンドウ(W) を押します。

このようにプロパティウィンドウが表示されます。

 このようにプロパティウィンドウが表示されます。
しかし先ほどのプロジェクトウィンドウが隠れてしまします。

よって下記のようにマウスで調整をします。

再度「表示」タブを押して コード(C) を押します。

右側に「コードウィンドウ」と呼ばれるものが表れます。

このように「プロジェクトウィンドウ」「プロパティウィンドウ」「コードウィンドウ」が揃いました。
VBA の作成や編集はここで行います。

 これをVBE (Visual Basic Editor) といいます。
VBA と一字違いでまぎらわしいですが、このVBEでマクロのプログラミングの作業をします。

ここで上部の「挿入(I)」タブをクリックします。
下記のようなボックスが表れます。

ここで「標準モジュール(M)」をクリックします。
このように画面が変わります。
上部画面のAの部分(空白の部分)あたりで右クリックしても、表れるボックスの挿入(N)から「標準モジュール(M)」をクリックできます。

上記の画面では「Option Explicit」の記述が出てます。
これは「変数の宣言を強制する」意味があります。
今ここでは理解できなくても問題ありません。

この表示が無い場合は次の処理を行ってください。

上部バーの「ツール(T)」をクリックします。
下記のボックスが表れますので、「オプション(O)」をクリック。

下記の「オプション」ダイアロボックスが表れます。

「編集」タブの
□ 変数の宣言を強制する(R) に ☑ を入れて OK ボタンを押してください。
「Option Explicit」の記述が出ているはずです。
一度この作業をすれば、今後全てこの記述は出てきます。

 一度この設定をすれば、今後新たにExcel VBEを開いてもこの記述がでるようになります。

これで VBA を書く準備はすべて整いました。

この「Option Explicit」は絶対必要かといえば絶対ではありません。
「Excel VBA には必要ない」と明言するプログラマーもいます。

しかし皆さんはこれから「変数」や「データ型」を勉強されます。
Excel VBA をきちんと理解するためにも、この設定はしておいてください。

VBA はどう書く?

 まずはVBA でコードを書いてみましょう。
Option Explicit と書かれた少し下に

sub Test

と書いてエンターキーを押してください。

一つのマクロを書く際は最初に「Sub (小文字でsubでもよい)」と書き、その後ろにマクロ名(自分でわかりやすい名前)を書きます。
マクロ名は別名「プロシージャ名」ともいわれます。

ここでは「Test」とします。
それでエンターキーを押すと、

Sub Test()

End Sub

と表示されます。

Sub から End Sub の間にVBAでマクロを書いていきます。
そう言ってもピンとこないかもしれませんね。

試しにSub Test と End Sub の間に下記の3行を書いてください。
後で動かしますので。

Sub Test()
Dim A

A = “こんにちは”
Range(“A1”)=A

End Sub

これだけでも立派なVBAで書かれたマクロ(プログラム)です。
書かれた意味はまだわからなくても結構です(今から勉強するのですから)。

マクロを動かす際には、このマクロ名(プロシージャ名)で指示を出します。
「”Test” 動きなさい!」って感じです。

ですから一つのモジュール内にはプロシージャ名は一つです。
複数あるとエラーになります。
「”Test”動きなさい」と命令されても複数の Test があると、どのTestを動かしていいのか機械は判断できません。
当然ですよね。

まとめると次のようになります。

結構この部分は慣れないうちはイメージしにくく、難しく感じるかもしれません。
一度に全部覚える必要はありません。

VBAでマクロを書くには
  標準モジュールを開いて
  そこにマクロを書く
  そのマクロの固まり(Sub から Sub Endまで)を「プロシージャ」という
ということを覚えておいてください。

実務上一般的には一つのモジュールにかなりの数のプロシージャが書かれます。

VBA マクロはどうやって動かす?

 前記事で3行のマクロを書きましたよね。

このマクロを動かす方法を説明します。
ここでは4つの方法を説明します。

ここで説明する方法はマクロを製作中に確認のため動かす方法です。

最終的にプログラムが完成して、仕事の現場等で普通に動かす場合は「ボタン」作ったりほかの方法があります。

ボタンの設定の仕方については、ボタンの設定 をご覧ください。

【実行1】 ▶ボタンを押す

VBE 上部の ▶ を押すだけで実行されます。
この場合、マウスカーソルが動かしたいプロシージャ内のどこかになければなりません。

プログラムウィンドウには複数のプロシージャがあるのが普通ですから注意してください。

【実行2】 F5 を押す
キーボードのファンクションキー「F5」を押します。
これでも実行されます。

【実行3】 F8 を押す
キーボードのファンクションキー「F8」を押します。
この場合は、書かれたマクロの 1行 1行をF8キーを押すたびに実行させる方法です。

この例題の場合は記述もわずかですので、かえってわかりづらいですが、何行にもわたって書かれたマクロを一行一行確認する場合は便利な実行方法です。

F8を押すたびに黄色のマーカーが実行場所を示します。

【実行4】 マクロダイヤロボックス
「表示」タブを押し、「マクロ」をクリックします。

マクロと書かれたダイヤロボックスが出ます。
ここの「Test」を選択し、「実行(R)」を押します。

Excel 最初にセルに「こんにちは」と表示されます。
これが ダイヤロボックスでの実行 方法です。

ここではこういう方法があるということを知っておいてください。

VBA の保存方法は?

 それではこのマクロの書かれたファイルを、普通のExcelファイルを保存するように、保存してみましょう。

とりあえずデスクトップに「Test」というファイル名で保存することにします。
左上の「ファイル」タブを押します。
「名前を付けて保存」を押します。

次の警告が出て保存できません。

マクロを含むExcelファイルは「.xlsx」の拡張子では保存することができません。
ここでは一旦「いいえ」を選択し、一つ前に戻ります。

「Excelブック(*.xlsx)  V」から拡張子一覧を開きます。
「Excel マクロ有効ブック(*.xlsm)」を選択します。
これで保存ボタンを押せば保存できます。

マクロ文を含んだExcelファイルは、普通の拡張子では保存できないことを知っておいてください。