EXCEL VBA で簡単なプログラムを作ってみる

EXCEL VBA で簡単なプログラムを作ってみる

前回の記事 EXCEL での VBA 環境のセットアップ方法 で VBA 環境を整えたら、次に簡単な VBA (Visual Basic for Applications) を使って簡単なプログラムを作ってみましょう。

ここでは EXCEL 表の中にボタンを1つ設置し、そのボタンを押すとメッセージボックスが表示されるという簡単なプログラムです。簡単ですが一度この仕組みを理解できれば様々な応用がきくようになりますので、実際に試してみて下さい。


簡単な VBA プログラムを作ってみる

まず VBA プログラムを作るためには下図のように「開発」というメニューが表示されていなければなりません。もし開発メニューがなければ EXCEL での VBA 環境のセットアップ方法を参照して開発メニューを有効にしましょう。

次に開発メニューを選択し、「挿入」メニューを押します。すると様々な部品が表示されますので、「ボタン (フォームコントロール)」というボタンをクリックします(下図の赤枠内)。

そして選択したボタンを EXCEL 表の中に設置するために、EXCEL シートの中(空白部分ならどこでも)で、マウスの左クリックをします。するとボタンが設置されます。

その直後に下図のように「マクロの登録」という画面が表示されますので、下図の赤枠で囲まれた「新規作成」ボタンを押します。マクロというのは、何かを操作した時に実行される処理のようなもの、とだけ覚えておけば問題ないでしょう。

「新規作成」ボタンを押すと、下図のように VBA 開発環境が自動的に起動します。赤枠で囲んだ部分に Visual Basic というプログラミング言語で必要な処理を書いていくことになります。
なお上記の赤枠で囲んだ部分は次のようになっています。
Sub ボタン1_Click()

End Sub
この処理は、先程設置したボタンの名前は「ボタン1」という名前が自動的につけられて、そのボタンをクリックした時(Click Event と呼ぶ)に実行されるのが、この処理であるという意味になります。そのため「ボタン1_Click」という名称が自動的に設定されているのです。「ボタン1がクリックされた時に呼び出される処理」と考えると分かりやすいですね。つまりボタンを押した時に何をしたいのか、という処理を Sub ~ End Sub の間に書けばよいのです。

それでは早速簡単な VBA プログラムを書いてみましょう。VBA には MsgBox という関数があり、表示したいメッセージを画面に表示してくれます。ここでは次のような VBA プログラム2行を書いてみました。
MsgBox ("Thailand is an amazing country!")
MsgBox ("タイは素晴らしい国です!")
2つの MsgBox 関数を書いていますので、ボタンをクリックするとメッセージが2階表示されます。たったこれだけですが、VBA の基本を学ぶためには十分です。MsgBox 関数を以下のように書きましょう。
Sub ボタン1_Click()
  MsgBox ("Thailand is an amazing country!")
  MsgBox ("タイは素晴らしい国です!")
End Sub
ここまでの時点で下図のように EXCEL シート内にボタンが設定されており、VBA コードも下図のようになっているはずです。

それでは EXCEL シートに戻って「ボタン1」を押してみましょう。すると次のような動きが確認できるはずです。
このようにして非常に簡単に VBA プログラムを試すことが出来ました。

最後に作ったプログラムを保存しましょう。VBA プログラムが入っている EXCEL ファイルは通常の EXCEL ファイルとして保存するのではなく下図のように「Excel マクロ有効ブック (*.xlsm)」として保存しなければなりません。通常の EXCEL ファイル(*.xlsx)ファイルとして保存してしまうと、せっかく作った VBA プログラムがなくなってしまいます。
EXCEL ファイルを *.xlsm ファイルとして保存すると、ファイルは次のようなアイコンで表示されます。

それでは保存したファイルを再度開いて見ましょう(ファイルをダブルクリック)。すると次のような画面になります。

この状態で「ボタン1」をクリックすると、次のようにメッセージが表示されずにエラーが表示されてしまいます。
これは、EXCEL ファイルを開いた途端に処理を実行するようになっていると、悪意のあるプログラムが実行されてしまうことになります(コンピュータ・ウィルス等)。そのため EXCEL では初期状態でいきなり VBA プログラムが実行されないようになっているのです。

今回は自分で作った VBA プログラムを実行したいだけですので、VBA プログラムを実行できるようにしてみましょう。VBA を有効にするには下図の赤枠内の「コンテンツの有効化」というボタンを押します。

そして再度「ボタン1」をクリックすると、VBA プログラムが正しく実行されてメッセージが表示されるようになります。

まとめ

このようにして非常に簡単に VBA プログラムを作ることが出来ました。このようにして VBA プログラム内からデータベースに接続したり、EXCEL 内のデータを操作したりすることが出来ます。