Excelのマクロを組んだはいいけど他の人に使わせると使い方のレクチャーが大変!なんてことありませんか?マクロの機能の一つ「ユーザーフォーム」を使うと、ボタンや入力欄を設置し、わかりやすいインターフェースを作ることが可能です。
本記事では、VBAのユーザーフォームを作成し、素人でも使いやすい仕組みを作る方法を詳しく解説していきます!
VBAユーザーフォームとは?

VBAのユーザーフォームとは、Excelのワークシートとは別に表示される入力フォームのことです。
- ボタンやテキストボックスを使って、データの入力を簡単にできる。
- 入力ミスを防ぐための制御(例えば、数字のみ入力可能にするなど)が可能。
- 操作が直感的で、パソコン初心者でも使いやすい。
業務でのデータ入力作業や、社内ツールの作成に最適です!
ユーザーフォームを作成する手順
開発タブを有効化する
- Excelを開き、「ファイル」→「オプション」→「リボンのユーザー設定」を選択。
- 「開発」タブにチェックを入れ、「OK」をクリック。
ユーザーフォームを追加する

標準モジュールを作るのと同様に、ユーザーフォームを作成します。
- 「開発」タブ →「Visual Basic」エディタを開く
- 「挿入」→「ユーザーフォーム」を選択し、フォームを作成。
ユーザーフォームにボタンなどを配置する
- ツールボックスから「ラベル」「テキストボックス」「ボタン」などを配置。

上の画像のようにツールボックスが表示されない場合は、「表示」のタブからツールボックスを表示させることができます。

ボタンなどにコードを記述する

ユーザーフォームに配置したツール(ボタンなど)をダブルクリックすると、コード画面に移動します。例えば、配置したボタンをダブルクリックすると次のコードが表示されます。
Private Sub CommandButton1_Click()
End Subこれは、CommandButton1というユーザーフォームのボタンが押されたときに発動するVBAを記述することができます。すでにVBAができているのであれば、Call 関数名()などで呼び出すだけでOKです。
クリックだけでなく、テキストボックスの文字が変更されたときや、ダブルクリック、マウスが上を通った時など様々な起爆方法が選択可能です。

素人でも使いやすい仕組みを作るポイント
ボタンの配置と役割を明確にする
幅や大きさの問題で、ボタンに入れられるテキストの文字数は制限されます。なるべく少ない文字数で意図を明確に伝える必要があります。次のような工夫をしましょう。
- 「OK」「キャンセル」「クリア」など、日常で使い慣れた文言のボタン
- 「実行」「送信」「確定」など最後のボタンである印象を持つボタン
VBA実行前に確認のメッセージボックスを表示させる
素人は、ボタンを押すことでPCが壊れるのではないかと不安になり何もできなくなります。ボタンを押してもメッセージが出て間違っていない安心感を与えると、無駄な問合せが減ります。次の例のように安心させるメッセージを出しましょう。
- 「実行」ボタンを押したら「~を実行しますがよろしいですか?」と出す
- 「送信」ボタンを押したら「~を入力しましたか?」と出す
エラーチェックを入れる
ユーザー側にテキスト入力を求める場合、意図しない文字列を入れてくる場合を想定しておく必要があります。よくある例を紹介します。
- 未入力のまま確定してくる
- 数値の全角半角が混ざってくる
- 「 」(スペース)が入っている
ユーザーフォームを簡単に開く方法
素人に使いやすいVBAということで、ユーザーフォームを紹介しました。しかし、ユーザーフォームが開けなければ、せっかく作りやすくしても水の泡です。ここでは素人でもユーザーフォームを開く方法を紹介します。
ショートカットボタンを作成
ワークシートに「フォームを開く」ボタンを作成し、以下のコードを登録すると、簡単にフォームを開けます。
Sub ユーザーフォームを開く()
UserForm1.Show
End Subショートカットを使う
普段VBAを使わない人は、「開発」タブの表示すらされていません。そのため、タブから「開発」の「マクロ」で実行させることは難しいです。そこでショートカットを使用してもらう方法が便利です。
Alt+F8こうすることで、ワンクリックでマクロ一覧を表示することができ、使いたいユーザーフォームを起動させることができます。
まとめ
- VBAのユーザーフォームを活用すると、初心者でも簡単にマクロを使える環境にできる
- 「OK」「クリア」「キャンセル」ボタンを設置し、操作をわかりやすく
- エラーチェック機能を加えることで、誤入力を防止
- ショートカットやボタンを作成し、簡単にフォームを開けるようにする
VBAを使えば、初心者でも直感的に操作できるフォームを作成できます。業務の効率化にぜひ活用してみてください!









コメント