はじめに
この記事は環境構築とマクロ作成・ユーザフォーム作成時のVBE(Visual Basic Editor)の使い方をまとめたものです。VBEの機能を網羅したものではありません。
開発環境の構築
ファイル > オプション > リボンのユーザ設定 の「開発」をチェックしOKボタンを押すとリボンに開発タブが追加される。開発タブの"Visual Basic"を押して以下の画面が表示されれば環境構築は完了です。
VBEの画面構成
VBEの画面は主に下記の3つのウィンドウから構成されます。
- コードウィンドウ
- コードを記述するウィンドウ
- コードを記述するウィンドウ
- プロジェクトエクスプローラ―
- 現在のモジュール一覧を表示したり、切り替えるウィンドウ
- 現在のモジュール一覧を表示したり、切り替えるウィンドウ
- プロパティウィンドウ
- オブジェクトのプロパティを表示・設定するウィンドウ
- ユーザフォームの編集で使うことが多い
マクロの作成と実行
1. モジュールの挿入
各モジュールの使い分けとしては以下のイメージです。
- ユーザフォーム
- 入力フォームなどの画面作成
- 入力フォームなどの画面作成
- クラスモジュール
- クラスを作成する
- クラスを作成する
- 標準モジュール
- クラスで作る必要がない処理の作成
2. コードウィンドウで編集
モジュール挿入後は、プロジェクトエクスプローラ―から作成したモジュールを選択しコードウィンドウで処理を記述します。
3. マクロの実行
マクロを実行する場合は、実行したいマクロを選択して実行ボタン(緑の矢印)を押します。
ボタンの配置とマクロの対応付け
1. ボタンの配置
ワークシートにボタンを配置するには、「開発」タブの挿入からボタンを選択します。
フォームコントロールとActiveXコントロールの2種類がありますが、調べたところ以下のような違いがあります。とりあえずユーザフォームを呼び出したい場合はActiveXコントロールを使い、それ以外の場合はフォームコントロールを使うという認識で良いと思います。
フォームコントロール | ActiveXコントロール | |
---|---|---|
マクロの登録方法 | VBAコードなしで登録 | VBAコードを使って登録 |
対応するイベント数 | クリックのみ(ボタンの場合) | クリック含む13種類(ボタンの場合) |
ユーザフォームでの使用 | 不可 | 可能 |
詳しくは以下を参照
ワークシートのフォーム、フォーム コントロール、ActiveX コントロールの概要 - Microsoft サポート
2. マクロの登録
フォームコントロールにマクロを登録するには以下のように、配置したボタンを右クリックしメニューから「マクロの登録」を押しマクロを選択すると登録できます。登録後はボタンが押されるとマクロが実行されるようになります。
入力フォームを作る
1. ユーザフォームを挿入
挿入タブからユーザフォームを選択します。
2. コントロールの配置
挿入したユーザフォームを選択すると、以下のような画面が表示されます。
ボタンや入力欄などのコントロールを配置するには画像のツールボックスを使ってコントロールの配置をします。
※ツールボックスが表示されてない場合、表示タブでツールボックスを押すと表示されます。
また配置したコントロールの位置やサイズなどの調整は、コントロールを選択した状態で右クリックして、表示されたメニューから行います。
3. イベント処理の記述
コントロールを配置し画面が完成したあとは、各コントロールのイベント処理を記述していきます。イベント処理を記述するには、ユーザフォームの右クリックメニューから「コードの表示」を選択します。
その後、以下の画面のオブジェクトボックスとプロシージャボックスから作りたいイベントプロシージャのオブジェクトとイベントを選択するとイベントプロシージャが生成されます。
生成したイベントプロシージャにイベント処理を記述します。
ワークシートのボタンから入力フォームを表示する
ワークシートにActiveXコントロールのボタンを配置したあと、ボタンを右クリックしメニューから「コードの表示」を押します。
その後、コードウィンドウでボタンが押されたときのイベントプロシージャを生成し、イベントプロシージャ内に以下のように記述することで入力フォームが表示されるようになります。
終わりに(VBE使った感想)
VBEを使った感想としては結構使いにくいなと感じました。
あとVBAマクロを実行すると、「もとに戻す」が使えなくなるのは結構めんどくさいなと感じました。
VBAマクロを実行しても「もとに戻す」が使える方法はないのでしょうか?