0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Visual Basic Editorの使い方

Last updated at Posted at 2024-04-28

はじめに

この記事は環境構築とマクロ作成・ユーザフォーム作成時のVBE(Visual Basic Editor)の使い方をまとめたものです。VBEの機能を網羅したものではありません。

開発環境の構築

ファイル > オプション > リボンのユーザ設定 の「開発」をチェックしOKボタンを押すとリボンに開発タブが追加される。開発タブの"Visual Basic"を押して以下の画面が表示されれば環境構築は完了です。

image-9.png

VBEの画面構成

VBEの画面は主に下記の3つのウィンドウから構成されます。

  1. コードウィンドウ
    • コードを記述するウィンドウ
       
  2. プロジェクトエクスプローラ―
    • 現在のモジュール一覧を表示したり、切り替えるウィンドウ
       
  3. プロパティウィンドウ
    • オブジェクトのプロパティを表示・設定するウィンドウ
    • ユーザフォームの編集で使うことが多い

image-10.png

マクロの作成と実行

1. モジュールの挿入

はじめに、挿入タブからモジュールを選択します。
module.png

各モジュールの使い分けとしては以下のイメージです。

  • ユーザフォーム
    • 入力フォームなどの画面作成
       
  • クラスモジュール
    • クラスを作成する
       
  • 標準モジュール
    • クラスで作る必要がない処理の作成

2. コードウィンドウで編集

モジュール挿入後は、プロジェクトエクスプローラ―から作成したモジュールを選択しコードウィンドウで処理を記述します。
image-12.png

3. マクロの実行

マクロを実行する場合は、実行したいマクロを選択して実行ボタン(緑の矢印)を押します。
image-13.png

ボタンの配置とマクロの対応付け

1. ボタンの配置

ワークシートにボタンを配置するには、「開発」タブの挿入からボタンを選択します。
image-14.png

フォームコントロールとActiveXコントロールの2種類がありますが、調べたところ以下のような違いがあります。とりあえずユーザフォームを呼び出したい場合はActiveXコントロールを使い、それ以外の場合はフォームコントロールを使うという認識で良いと思います。

フォームコントロール ActiveXコントロール
マクロの登録方法 VBAコードなしで登録 VBAコードを使って登録
対応するイベント数 クリックのみ(ボタンの場合) クリック含む13種類(ボタンの場合)
ユーザフォームでの使用 不可 可能

詳しくは以下を参照
ワークシートのフォーム、フォーム コントロール、ActiveX コントロールの概要 - Microsoft サポート

2. マクロの登録

フォームコントロールにマクロを登録するには以下のように、配置したボタンを右クリックしメニューから「マクロの登録」を押しマクロを選択すると登録できます。登録後はボタンが押されるとマクロが実行されるようになります。
image-17.png

入力フォームを作る

1. ユーザフォームを挿入

挿入タブからユーザフォームを選択します。

2. コントロールの配置

挿入したユーザフォームを選択すると、以下のような画面が表示されます。
ボタンや入力欄などのコントロールを配置するには画像のツールボックスを使ってコントロールの配置をします。
※ツールボックスが表示されてない場合、表示タブでツールボックスを押すと表示されます。
image-18.png

また配置したコントロールの位置やサイズなどの調整は、コントロールを選択した状態で右クリックして、表示されたメニューから行います。
image-20.png

3. イベント処理の記述

コントロールを配置し画面が完成したあとは、各コントロールのイベント処理を記述していきます。イベント処理を記述するには、ユーザフォームの右クリックメニューから「コードの表示」を選択します。
その後、以下の画面のオブジェクトボックスとプロシージャボックスから作りたいイベントプロシージャのオブジェクトとイベントを選択するとイベントプロシージャが生成されます。
生成したイベントプロシージャにイベント処理を記述します。
image-3.png

ワークシートのボタンから入力フォームを表示する

ワークシートにActiveXコントロールのボタンを配置したあと、ボタンを右クリックしメニューから「コードの表示」を押します。
その後、コードウィンドウでボタンが押されたときのイベントプロシージャを生成し、イベントプロシージャ内に以下のように記述することで入力フォームが表示されるようになります。
image-21.png

終わりに(VBE使った感想)

VBEを使った感想としては結構使いにくいなと感じました。
あとVBAマクロを実行すると、「もとに戻す」が使えなくなるのは結構めんどくさいなと感じました。
VBAマクロを実行しても「もとに戻す」が使える方法はないのでしょうか?

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?