VBAに限らず、どのプログラミング言語を学ぶにも、実際にコードを書いて動かしてみることが、早く上達する近道だと考えています。本記事から、さっそく手を動かしVBAコードを書き写してから、実行結果を確認するようにしてください。
目次
VBAコードを真似て書く
標準モジュールが準備できましたら、後はVBAコードを書いて実行するだけです。今回は、簡単なコードですが、プログラミング言語が早く上達するための近道は、とにかく真似て書いてみることですので、ぜひ手を動かしてみてくださいね。
Tips
標準モジュールの準備の仕方
それでは、まず「sub Sample0503」まで入力してから「Return」を押してみてください。すると下図の通り、最後の「End Sub」まで自動で入力されます。
あとは「Sub~End Sub」までの間に「msgbox "Hello! World!"」と入力してみてください。そうすると、初めの図と同じ状態になります。
VBAコードを実行する
では、いよいよ入力したコードを実行してみようと思います。ただその前に、確認する点が1つだけあります。
それは、下図赤枠の範囲内にカーソル位置(点滅状態)があるかどうかです。(既に赤枠内にカーソルがある場合はそのままでOK!) 赤枠の外にカーソルがあると、きちんと実行されませんので、必ず確認しておいてくださいね。
確認が取れましたら、いよいよコードを実行するだけです。
コードを実行する方法は、下図赤枠の「▶」ボタンをクリック、または「F5」キーを押してみてください。
▶ボタンをクリック、または「F5」キーを押すと、下記ウィンドウが表示されます!
どうでしょう。上手くいきましたでしょうか?確認が終わりましたら、 「OK」ボタンを押すことにより、今回のVBAコードが終了したことになります。
プロシージャとMsgbox関数
プロシージャ
VBE画面に戻って今回のコードをもう一度みてみましょう。
まず下図に示すように「Sub」から「End Sub」までの間に、コード(今回の場合「Msgbox "Hello! World!"」)が挟まれているのが分かりますよね。
この「Sub」~「End Sub」までが、「プロシージャ」と呼ばれるもので、VBAコードのまとまりの最小単位になります。そして、一連のコードはこのプロシージャの中に書く約束になってます。
先ほどVBAコードを実行する前に、カーソル位置を確認するお願いをしましたよね。その理由は、VBE画面から実行されるコードは、そのプロシージャ内にカーソルがある場合に限られるからです。
次は「Sub」の横に書かれている「Sample0503」です。これは個々のプロシージャを識別するために任意につけることができる名前で、「プロシージャ名」といいます。
ただ任意とはいえ、同じ標準モジュール内で重複する名前はつけられません。また数字で始まる名前はつけられませんが、漢字やひらがななどは使えます。

またこれも先ほどのコード入力の時にもお話ししましたが、プロシージャを作る際はまず「sub」 に続けて「プロシージャ名」までを入力したあと、「リターン」キーを押すだけでプロシージャ名の後ろの「()」と、プロシージャ最後の「End Sub」が自動で入力されます。
さらに、初めの「sub」の"s"は小文字で入力しても、「リターン」キーを押した後、自動で大文字に変換されるので、わざわざ大文字で入力する必要はありません。
Msgbox関数
プロシージャの中身になるVBAコードの「Msgbox」です。これは任意のメッセージを、ウィンドウに表示させるための関数です。
Msgbox関数は色々と便利な使い方があるのですが、ここでの使い方は、Msgboxと入力した後に、表示したい文字列を"(ダブルクォーテーション)で囲んで使う簡単かつ、よく使われる方法です。
この時の"Hello! World!"は、Msgbox関数の引数に相当します。関数といえば、何かを入れると、何かが出てくるイメージがありますが、その「何かを入れる」に相当するのが、上図赤下線部分の"Hello! World!"ってことですね。
この引数ですが、数字ならばそのまま数字を入力して「Msgbox 10」とか、「Msgbox 10+5」のように四則演算の結果を表示させることもできます。
そして、MsgBox関数のアウトプット(「何かが出てくる」)に相当するのが、先ほど実行した際に表示された小さいウィンドウということになります。
Tips
MsgBox関数の応用例
まとめ
今回は簡単なプロシージャを書いてVBAを実行させました。またExcel画面上に結果を表示させることができる大変便利で、よく使われる MsgBox関数の紹介をしました。