VBAで作った関数をどうやって動かすか
VBAで作った関数やマクロ記録機能で作った関数を動かす方法は主に4通りあります。簡単な順に並べると以下になります。
- VBA上で実行する
- 図形にマクロを登録して、クリックして動かす
- リボンやクイックアクセスツールバーに登録して、クリックして動かす
- セルの右クリックなどのイベント処理に登録して、イベント発生時に動かす
それぞれ用途が異なります。マクロ(関数)を動かす方法と合わせて説明します。
1. 作った関数をVBA上で実行する方法
関数を作ってすぐに動かしたい場合など、VBAで標準モジュールやワークシートに作成した関数をVBA上で実行するには、以下の2つの手順を踏みます。
1. 実行したい関数名や関数内にマウスカーソルを当てます。画像の右上のプロシージャプルダウン(関数名が書いてあるプルダウン)から選択してもOKです。ただ、このプルダウンは関数名の変更や追加がすぐに反映されないことがあります。
2. 「Sub/ユーザーフォームの実行 F5」ボタンを押すか、F5キーを押します。
上の画像のコードの「Debug.Print “abc”」はイミディエイトウィンドウに”abc”という文字列を出力する、という内容のため、実行するとその通りに出力されます。
1 2 3 |
Sub DebugPrintTest1() Debug.Print "abc" End Sub |
2. 作った関数を図形に登録して実行する方法
Excelシートに図形、主にオートシェイプを配置して、VBAで作成した関数を図形に登録すると、図形をクリックすることでVBAで作成した関数を実行できるボタンのように扱うことが出来ます。
1. ボタンとして扱う図形を作成します。図形は、リボンの挿入タブ→図セクション→図形、から選択できます。ここではボタンの形に近い「四角形 角を丸くする」を使用していますが、どの図形でも構いません。
2. 作成した図形を右クリックして、「マクロの登録」を選択します。
3. まだVBAで関数を作成していないのであれば、マクロ名の欄に作成する関数名を入力して、「新規作成」ボタンを押します。VBAの画面が表示されて記載した関数名が自動作成されます。既に作成済みの関数を登録する場合は後述してます。
4. 既に関数を作成しているのであれば、リストから関数を選択してOKボタンを押します。マクロの保存先がPERSONAL.XLSB(個人用マクロブック)など他のブックの場合は、「マクロの保存先」プルダウンを変更してください。
これで図形クリックでマクロが動くようになります。
ただし、クリックしてもオートシェイプが選択されるだけで実行されない場合があります。これはデザインモードの状態になっているためです。VBAの画面にデザインモードの切り替えボタンがありますので、クリックしてデザインモードを終了すると、図形クリックでマクロが実行できるようになります。
3. リボンやクイックアクセスツールバーに登録して実行する方法
VBAで作った関数を頻繁に実行する場合は、リボンやクイックアクセスツールバーに登録しておくのが便利です。私も多用しています。
詳細は「マクロをいつでもすぐ使えるようにする(クイックアクセスツールバー)」をご参照ください。
なお、VBAで作成した関数だけでなく、Excelで最初から用意されている機能もリボンやクイックアクセスツールバーに登録することが可能です。
4. 作った関数をイベントに登録して実行する方法
Excelには多数のイベントがあります。イベントとは、セルの右クリックした、など、何かしらExcelを操作することを指します。
いくつかのイベントについて以下に詳細を記載していますので参考にしてください。