VBAでユーザーフォームのテキストボックスに値を挿入するVBAコードを紹介します。
- テキストボックスに初期値を入れたい
- セルの値をフォームに表示したい
- 入力済みの値を自動で反映したい
このような場合は、VBAでテキストボックスに値を設定することで簡単に実現できます。
フォームの使いやすさが大きく向上するので、実務でも非常によく使われるテクニックです。
この記事では、ユーザーフォームのテキストボックスに値を挿入する方法を初心者向けに分かりやすく解説します。
この記事でできること
- テキストボックスに値を設定できる
- フォーム表示時に初期値を入れられる
- セルの値をフォームに反映できる
- 実務で使えるコードが分かる
基本:テキストボックスに値を設定する方法
まずは一番シンプルなコードです。
Option Explicit
Sub SetTextBoxValue()
UserForm1.TextBox1.Value = "サンプルテキスト"
UserForm1.Show
End Sub
これで、フォームを開いたときにテキストボックスに文字が表示されます。
コードのポイント解説
① TextBox1.Valueとは?
テキストボックスの中身(入力値)を設定・取得するプロパティです。
TextBox1.Value = "値"
この1行で値を入れることができます。
フォーム表示時に自動で値を入れる方法
フォームが開いたタイミングで値をセットしたい場合は、Initializeイベントを使います。
Private Sub UserForm_Initialize()
Me.TextBox1.Value = "初期値"
End Sub
この方法が一番よく使われます。
セルの値をテキストボックスに表示する
Excelのセルと連携する場合はこちらです。
Private Sub UserForm_Initialize()
Me.TextBox1.Value = Range("A1").Value
End Sub
A1セルの内容がそのままフォームに表示されます。
複数のテキストボックスに値を設定する
複数項目を扱う場合は、次のように書きます。
Private Sub UserForm_Initialize()
Me.TextBox1.Value = Range("A1").Value
Me.TextBox2.Value = Range("B1").Value
Me.TextBox3.Value = Range("C1").Value
End Sub
ボタンを押したときに値をセットする
ボタン操作で値を入れる場合はこちらです。
Private Sub CommandButton1_Click()
Me.TextBox1.Value = "ボタンで設定しました"
End Sub
空白チェックをして値を入れる
実務では条件を付けることも多いです。
If Range("A1").Value <> "" Then
Me.TextBox1.Value = Range("A1").Value
End If
数値をテキストボックスに表示する
数値もそのまま表示できます。
Me.TextBox1.Value = 100
表示形式を整えたい場合はFormatを使います。
Me.TextBox1.Value = Format(1000, "#,##0")
実務でよくある使い方
- 編集フォームに既存データを表示
- 入力画面の初期値設定
- 検索条件の表示
- 入力内容の再表示
特に「既存データの編集画面」でよく使われます。
よくあるエラーと対処法
① フォーム名・テキストボックス名が違う
次の名前が正しいか確認してください。
- UserForm1
- TextBox1
② フォームが表示されない
UserForm1.Show が実行されているか確認してください。
③ 値が入らない
Initializeイベント内に書いているか確認してください。
④ コードは正しいのにエラーになる
コピー時に全角文字や特殊文字が混ざることがあります。
その場合は該当行を手入力し直すと解決することがあります。
まとめ
- テキストボックスの値は
TextBox.Valueで設定できる - 初期値は
Initializeイベントで設定 - セルの値と連携可能
- フォームの使いやすさが大幅に向上する
ユーザーフォームのテキストボックスに値を設定できるようになると、
入力画面や業務ツールの完成度が一気に上がります。
実務でも非常によく使うテクニックなので、ぜひ活用してみてください。


コメント