ExcelのVBA(Visual Basic for Applications)におけるユーザーフォームは、ユーザーインターフェースを提供するためのカスタマイズ可能なダイアログボックスのことです。
ユーザーフォームを使用すると、ユーザーはExcelシート上で直接操作するよりも、より直感的かつユーザーフレンドリーな方法でデータを入力したり、選択したりすることができます。
ユーザーフォームの作成方法
ユーザーフォーム作成
VBエディタを起動させてプロジェクトエクスプローラー欄で右クリックをおして「挿入」の中「ユーザーフォーム」をクリックします。

実行すると「UserForm1」が追加され右側のオブジェクトエリアに「UserForm1」が表示されます。

ユーザーフォームを削除する方法
ユーザーフォームを削除するにはプロジェクトエクスプローラー内で削除したいユーザーフォームを選択します。右クリックから「UserForm1の解放」をクリックします。

このように削除されます。

Excelにボタンを設定してユーザーフォーム表示
ユーザーフォームを新規に作成しユーザーフォームが選択されている状態で、ツールボックスが表示されます。ここから様々なコントロール(ボタン、テキストボックス、ラベルなど)をフォームにドラッグ&ドロップして配置します。

ツールボックスが表示されない場合
表示タブにあるツールボックスを選択します。

ユーザーフォームにボタンを設定する
ツールボックスにボタンがあります。クリックをしてUserFormのオブジェクトの場所にクリックをします。

クリックするとボタンが設置されます。そのまま選択状態でプロパティのCaptionでボタンの名称を変更できます。

名称を変更してそのままOKボタンのオブジェクトをダブルクリックします。

すると「CommandButton1」のコードが追加されます。

以下のように「MsgBox」を追加します。これはボタンがクリックされたときにメッセージを表示するコードを示します。
Private Sub CommandButton1_Click()
MsgBox "ボタンがクリックされました"
Unload UserForm1
End Sub
「Unload UserForm1」はUserForm1を閉じるメソッドになります。
次に新しいモジュールを作成します。

モジュールを作成したら以下のコードを作成します。
Sub ShowUserForm()
UserForm1.Show
End Sub
UserForm1.Showの「.Show」でUserForm1を立ち上げます。
次にExcelのシートにボタンを作成するのでExcelシートに図形を挿入してください。

作成した図形に右クリックを押してメニューを表示させます。
ボタンに名称を付けるには「テキストの編集」で名称をつけてください。
次にこの図形にマクロの埋め込みます。メニューは「マクロの登録」をクリックしてください。

マクロの登録のモーダル画面で作成したプロシージャーをクリックします。
次にOKボタンをクリックします。

ボタンをクリックするとUserForm1が立ち上がります。

以上で基本的なユーザーフォームの作成になります。
これを基本に色々なフォーム入力が可能になります。
ユーザーフォームのメリット
エラーチェックの強化:
- ユーザーフォームでは、ユーザーがデータを入力する際にリアルタイムでエラーチェックを行うことができます。これにより、無効なデータの入力を防ぎ、データの整合性を保つことができます。
操作のガイド:
- ユーザーフォームにツールチップやラベルを追加することで、ユーザーがフォームの各フィールドやボタンの役割を理解しやすくなります。これにより、ユーザーの操作をガイドし、誤操作を防ぐことができます。
カスタマイズ性:
- ユーザーフォームは高度にカスタマイズ可能です。ユーザーのニーズに合わせてフォームの外観や動作を調整できます。例えば、特定の条件に応じてフォームの表示内容を動的に変更することも可能です。
タスクの自動化:
- ユーザーフォームを使用することで、データ入力や処理の自動化が容易になります。例えば、ユーザーがフォームにデータを入力して「送信」ボタンをクリックすると、VBAコードがトリガーされて一連の自動化タスクが実行されるように設定できます。
データの一貫性:
- ユーザーフォームを使用することで、データの一貫性を保つことができます。例えば、選択リストやチェックボックスを使用することで、ユーザーが一貫したデータを入力するように誘導できます。