第9章:ユーザーフォーム作成
こんにちはっ🐰✨ まくるです!
今回は、ExcelのVBAで オリジナルの入力画面 =「ユーザーフォーム」を作っていくよっ!
実務でもめちゃくちゃ便利なこの機能、一度覚えるとやみつきになる魔法だよ💫
🧱 ユーザーフォームってなに?
ユーザーフォームは、 自分で作れる入力ウィンドウ のこと!
- テキストボックスで名前を入力
- コンボボックスで選択肢を選ぶ
- OKボタンやキャンセルボタン付き
Excelを 本格アプリ風に操作 できちゃうよ✨
🛠️ ユーザーフォームの作り方(手順)
- Excelで「Alt + F11」でVBAエディタを開く
- メニューから「挿入」→「ユーザーフォーム」を選ぶ
- 画面右側の「ツールボックス」からパーツを配置(Label, TextBox, CommandButtonなど)
- フォーム名や各コントロールの
Name
とCaption
を設定
💬 ボタンに処理を書く
例:名前を入力してメッセージを出すフォーム
- TextBox:
Name = txtName
- CommandButton:
Name = cmdHello
、Caption = あいさつ
Private Sub cmdHello_Click()
MsgBox "こんにちは、" & txtName.Text & " さん!"
End Sub
▶ フォームを表示するマクロ
フォーム名が UserForm1
の場合:
Sub ShowForm()
UserForm1.Show
End Sub
📌 Show
で表示されるよ!ボタンや入力内容に応じて処理を組み込もう🧙
✏️ 入力値をシートに書き込む
Private Sub cmdHello_Click()
Sheets("Sheet1").Range("A1").Value = txtName.Text
Unload Me ' フォームを閉じる
End Sub
-
.Text
でテキストボックスの値を取得 -
Unload Me
でフォームを閉じる
🧽 フォームの初期化処理(Initialize)
フォームを開いたときに実行されるイベントだよ!
Private Sub UserForm_Initialize()
txtName.Text = ""
End Sub
📌 初期状態をセットしたり、コンボボックスの選択肢を入れるときによく使う!
🌟 ワンポイント:フォームのデザインのコツ
-
TabIndex
を正しく設定して、Tabキーで移動できるようにしよう -
Multiline = True
にすると複数行入力できるよ(テキストボックス) -
Default = True
にするとボタンがEnterキーで押せるようになる!
📌 まとめ
- ユーザーフォームでExcelが「アプリ化」できる!
-
TextBox
,ComboBox
,CommandButton
を使いこなそう -
UserForm_Initialize
で初期化も忘れずに!
次回は、 「第10章:エラー処理とデバッグ」
バグと戦う魔法、覚えておこうねっ⚡🪄