Excel VBA UserFormの使い方|フォームやダイアログボックスを作る

 

Excel VBA UserFormは、Excel VBAでGUI(グラフィカルユーザーインターフェース)を作成するためのツールです。ユーザーと対話するためのフォームやダイアログボックスを作成できます。具体的な使い方や、注意点やサンプルコードを紹介します。

 

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

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

 

Excel VBA UserFormを利用

以下のようなシーンで利用されます。

・ユーザーがデータを入力しやすくするためのフォーム

・データベースやリストから情報を検索するためのインターフェース

・各種設定やオプションをユーザーに選択させるためのダイアログ

・ユーザーが条件を指定してレポートを生成するためのフォーム

 

Excel VBA UserForm|使い方とポイント

使い方

1.UserFormの挿入
VBAエディターを開き、プロジェクトウィンドウでプロジェクトを右クリックして「挿入」→「UserForm」を選択

2.コントロールの追加
ツールボックスからコントロール(ボタン、テキストボックス、ラベルなど)をUserFormにドラッグアンドドロップ

3.コードの記述
UserFormやコントロールのイベントに対応するコードを記述

 

ポイント

・フォームのサイズやコントロールのレイアウトを適切に設定する。

・入力データの検証とエラーハンドリングをしっかり行う。

・複雑な処理や大量のデータを扱う場合、パフォーマンスに注意する。

 

Excel VBA UserFormのサンプルコード

ユーザーの名前を入力するためのテキストボックスと、挨拶を表示するためのボタン例
UserFormの設計

1.UserFormの挿入
「挿入」→「UserForm」を選択。

2.コントロールの追加
テキストボックス (`TextBox1`)
ボタン (`CommandButton1`)
ラベル (`Label1`)

 

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

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

 

UserForm1のコードウィンドウに以下のコードを追加

Option Explicit

Private Sub CommandButton1_Click()
    ' テキストボックスに入力された名前を取得
    Dim userName As String
    userName = TextBox1.text
    
    ' 挨拶メッセージを表示
    Label1.Caption = "こんにちは、" & userName & "さん!"
End Sub

UserFormの表示のため、標準モジュール(Module1など)に以下のコードを追加

Option Explicit

Sub ShowUserForm()
    ' UserForm1を表示
    UserForm1.Show
End Sub

Excelの任意のシートで、Alt + F8を押して「マクロ」を開き、`ShowUserForm`を実行します。UserFormが表示されるので、テキストボックスに名前を入力してボタンをクリックすると、挨拶メッセージを表示します。

 

これらのポイントを理解することで、Excel VBAのUserFormを効果的に活用できるようになります。

 

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

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