VBAプログラムを起動させる方法

初級VBA

VBAプログラムを起動させる方法

 セル内に書き込む数式マクロは入力すると動作しますが、VBAのプログラムはどのタイミングで実行するのかをプログラマーが指定しなければなりません。
 VBAのプログラムを起動させるには大きく分けて4つの方法があると思います。

・VBEから直接起動
・シート上にボタンを設置して起動
・イベントが起こる時に起動
・メニューに登録して起動

 それぞれの特徴についてまとめてみました。

VBEから直接起動

 プログラムのテストなどで使用する時はVBEから直接起動させることが多いと思います。
 ただ引数を取るようなプロシージャの場合は、別にテスト用のプロシージャを書く事になります。

Sub myPlus(a As Long, b As Long)
    MsgBox a & " + " & b & " = " & a + b
End Sub

Sub TestCode()
    myPlus 1, 2
End Sub

 テスト用として使う事も多いのですが、ユーザーの見えないところから実行できるという利点を生かして敢えてVBEから実行するようにするというのも良いでしょう。
 実行方法は、実行したいプロシージャ内部にカーソルを置いてから、F5キー、メニューの「実行」>「SUB/ユーザーフォームの実行」などで実行できます。

特徴:
・ユーザーの見えないところから実行できる
・引数を取る場合はテスト用よプロシージャを書く
・ボタンやイベント処理などが不要

シート上にボタンを設置して起動

 ユーザーに使用してもらう場合、一番簡単なのがシート上にボタンを設置して実行してもらう方法です。
 実行のタイミングをユーザーに任せることができ、余計にプログラムを稼働させるという事が無くなるので管理しやすくなります。

 コマンドボタンだけでなく、図形もボタンの代わりに使う事ができます。
 適当な図形を挿入したら右クリックのメニューから「マクロの登録」を選択すれば、ダイアログが出ます。
 後は、コマンドボタンと同じで実行させたいプロシージャを登録すればOKです。

 実行するタイミングをユーザーに任せるという事は、自動で処理させたい場合などには不向きと言えるでしょう。
 
特徴:
・設置が簡単で管理しやすい
・ユーザーに分かりやすく実行のタイミングを任せられる
・図形をボタン代わりに設置できる
・自動処理などには不向き

イベントが起こる時に起動

 イベントでプログラムを起動させれば、数式マクロのような動作を行うことができます。
 ユーザーが関知しないところで実行できるので自動処理などに向いています。
 ただ、イベントがどのようなタイミングで実行されるのかをきちんと把握していないと余計なタイミングでプログラムが実行される事となり動作が重くなったりしますので注意が必要です。
 慣れないうちはわかりやすいイベントで動作させるようにした方が良いでしょう。
 以下は、ワークブックが開く際のイベントです。

特徴:
・自動処理に向いている
・イベントが起こるタイミングをよく理解する必要がある

メニューに登録して起動

 あまり知られていない方法ですが、メニューや右クリックのメニューなどの項目をセットしてプログラムを実行させる方法もあります。
 少々処理が複雑なので中級者向けかもしれません。
 また、ユーザー側でメニュー項目に追加されていることを周知させておかないといけません。
 ボタンよりも目立たないというのが欠点かもしれません。

 実際の作り方はこちらのページを参照してください。

特徴:
・ブログラムが少々複雑になる
・目立たないのでユーザー側に周知させておく必要がある

まとめ

 プログラムを実行させる4つの方法を見てきました。
 初心者のうちはボタンを設置して実行するのが一番やりやすいと思います。
 慣れてきたらイベントのタイミング実行させる処理にトライしてみましょう。

 ちなみに筆者の場合、図形をボタンとして使用したり、メニュー項目に追加するというのは殆どやったことがありません。
 クライアント向けに見栄えを良くするために使用する場合が殆どだと思いますので、自身の業務改善を行いたいような方には無用の長物言えるかもしれません。

タイトルとURLをコピーしました