ExcelVBA マクロやイベントからユーザーフォームを呼び出しする方法

 

ExcelVBA ユーザーフォームを呼び出すことで、GUI(グラフィカルユーザーインターフェース)を提供し、ユーザーが簡単にデータ入力や操作を行える環境を作る。使い方や注意点など、サンプルコードをもとに具体的に解説します。

 

📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!

👇実務で“そのまま使える”テンプレ付きで、コピペするだけ
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き

 

Excel VBA ユーザーフォーム呼び出しシーン

以下のようなシーンで利用で表示します。

・ユーザーがデータを入力しやすくする。

・複数の選択肢から値を選ぶ。

・複雑な操作を簡略化するためのボタンや機能を提供する。

Excel VBA ユーザーフォーム呼び出し|使い方とポイント

使い方

1. ユーザーフォームを作成します( UserForm1 という名前がデフォルト)

2. 標準モジュールやその他のVBAモジュールからフォームを呼び出すコードを書きます。

ポイント

・ユーザーフォームを閉じる際は Unload Me または Me.Hide を使用します。

・不要なフォームを閉じないと、メモリが無駄に消費される場合があります。

・ユーザーフォーム名(例: UserForm1 )を正確に指定してください。

 

Excel VBA  ユーザーフォーム呼び出しのサンプルコード

標準モジュール(ユーザーフォームを表示するコード)
Option Explicit

Sub ShowUserForm()
    ' ユーザーフォームを表示
    UserForm1.Show
End Sub

 

自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。

👉無料ExcelVBAベーシック選択問題138問

 

フォームモジュール(フォームの初期化と閉じるボタンの処理)

Option Explicit

Private Sub UserForm_Initialize()
    ' 初期化処理(例: ラベルの設定)
    Me.Label1.Caption = "データを入力してください"
End Sub

Private Sub CommandButton1_Click()
    ' 閉じるボタン
    Unload Me
End Sub

ThisWorkbookのシート上にボタンを設置し、マクロに紐付けます。

Option Explicit

Sub CallUserFormFromSheet()
    ' ユーザーフォームをシートボタンから呼び出し
    UserForm1.Show
End Sub

標準モジュールにフォーム呼び出しコードを記述することで、他のマクロやイベントから簡単にアクセスできます。初心者でも理解しやすい形にするため、 UserForm1.Show のようにシンプルな呼び出し方法を利用します。

サンプルコードをコピーして試せば、すぐに動作を確認できます。

 

Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。

👉無料ExcelVBAベーシック選択問題138問