この記事では、Visual Basic Editorを使用できるようにする方法と、VBAプログラムの代表的な起動方法を説明をします。
下記の方に向けての記事となっております。
- これからエクセルVBAを始める人
- Visual Basic Editorを表示する(開く)方法を知りたい人
- プログラムを記述する場所を知りたい人
- 作ったプログラムを起動したい人
VBEを開く方法
エクセルをインストールして、デフォルト状態ではVisual Basic Editor(以下VBE)を開くことができません。
エクセルの開発タブを表示してVisual Basic Editorを開く手順を説明します。
画像はWindows11 office2021の画面です。
①エクセルのリボンの上で右クリックすると、リボンのユーザー設定が選べるウィンドウが表示されますので、クリックします。
②メインタブの「開発」のチェックボックスをONにして右下のOKボタンを押します。
③開発タブが表示されるので、選択して一番左のVisual Basicをクリックします。
Visual Basic Editorが起動します。
プログラムを保存&記述する場所
VBAのプログラムを保存するファイルは2種類あります。
1つ目は、エクセルを起動時に、どのエクセルファイルからでも使用できるプログラムは、「PERSONAL.XLSB」というファイルに記述します。
PERSONAL.XLSBを作りたいときには、マクロの記録ボタンを押すと表示されるウィンドウ内の「個人用マクロ ブック」を選択すると自動的に作成されます。
PERSONAL.XLSBの標準モジュールにプログラムを記述しておけば、エクセルが起動したら、どのファイルでもプログラムを利用できます。私は、よく使う書式設定をまとめて設定できるプログラムを記述しています。
2つ目はマクロ有効ブック(拡張子.XLSM)です。
Microsoft Excel Objectsはオブジェクトモジュールと呼ばれ、Sheet1やThisWorkbookなどがあります。
また、PERSONAL.XLSB同様に標準モジュールを追加してプログラムを記述することも可能です。
プログラムを記述する場所(モジュール)によって、プログラムを実行する方法が選べたりしますので、後で説明します。
マクロを呼び出せる範囲を簡易的な図に示します。PrivateやPublicの設定で呼び出しができる範囲などが変化しますが、今回の記事では説明は割愛させていただきます。
代表的なプログラム起動方法
ボタンをクリックして起動
私が一番多用するボタンを押すことでプログラムが起動する方法を説明します。
開発タブ内の挿入ボタンを押すと、フォームコントロールとActiveXコントロールのボタンなどを選択することができます。ActiveXコントロールのボタンは、プロパティの設定によって、ボタンの有効&無効を制御することができたりしますが、今回は通常のフォームコントロールのボタンを設置します。
フォームコントロールのボタンを押して、設置したいシートの上で範囲選択をします。範囲選択後、ボタンに割り付けるマクロの登録ウィンドウが表示されますので、マクロの保存先を選択して新規作成ボタンを押します。
新規作成を押すと、自動的にファイルに標準モジュールが追加され、右側にボタンを押したときに実行されるプログラム(subプロシージャー)が作成されます。
SubとEnd Subの間に、簡単なプログラムを記述して、ボタン1を押すと、プログラムが実行されているのが確認できます。
開発タブのマクロから選んで起動
開発タブ内のマクロボタンを押すと、使用できるマクロの一覧を表示できるウィンドウが表示されますので、選択して実行ボタンを押すと、選択したプログラムを実行できます。
下の画像では、ボタンを押してませんが、「ボタン1が押されました」のメッセージを表示できました。
オブジェクトモジュールのトリガーにて起動
ブックが開かれたり、シートのセルがダブルクリックされたことをきっかけにプログラムを起動する方法を説明します。
VBEのプロジェクトブラウザ内のオブジェクトを右クリックするとウィンドウが表示されますので、その中の「コードの表示」を選択します。コード記述部分の左上(画像青四角部)でオブジェクトを選択し、右上(画像緑四角部)のトリガーを選択します。
自動的に意図しないトリガーが選択される場合がありますので、その場合にはプログラムを削除してください。
今回はWorksheet_SelectionChangeでコードを記述してみます。
SelectionChangeはシートの選択した範囲が変わったらプログラムが実行され、引数として選択された範囲の情報を取得することができます。今回のプログラムでは、選択した範囲のアドレスを表示するようにプログラムしてみました。
最後に
この記事にたどり着いて、最後まで読んでいただき、ありがとうございます。
エクセルVBAを始めるための最初の1歩となるVBEの起動方法や、プログラムの起動方法を説明させていただきました。
実際に動くコードなども公開していますので、そちらの記事も読んでいただけると嬉しいです。
コメント