テキストボックスの基本
Excel VBAで「ユーザーに文字や数値を入力してもらう」場面では UserFormのテキストボックス を使います。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。
基本の考え方
- TextBoxとは?
UserFormに配置できる入力欄。ユーザーが文字や数値を入力できる。 - 用途:
- 名前やコードの入力
- 数値の入力(売上、数量など)
- 検索キーワードの入力
- 流れ:
- VBAエディタで「挿入 → UserForm」を選ぶ。
- UserFormに TextBox と CommandButton を配置。
- コードで「入力値を取得」「シートに書き戻す」などを定義。
テンプレ1:入力値を取得して表示
UserFormに TextBox1 と CommandButton1 を配置。
Private Sub CommandButton1_Click()
Dim inputValue As String
inputValue = TextBox1.Value
MsgBox "入力された値は " & inputValue & " です"
End Sub
VB- ポイント:
TextBox1.Valueで入力値を取得。- ボタンを押すとメッセージボックスに表示。
テンプレ2:シートに書き戻す
Private Sub CommandButton1_Click()
Dim ws As Worksheet: Set ws = Worksheets("Data")
ws.Range("A1").Value = TextBox1.Value
MsgBox "シートに書き込みました!"
End Sub
VB- ポイント:
- 入力値をシートのセルに書き戻す。
- データ入力フォームとして利用可能。
テンプレ3:数値入力を計算して書き戻す
UserFormに TextBox1(数量入力)と CommandButton1 を配置。
Private Sub CommandButton1_Click()
Dim qty As Double
If IsNumeric(TextBox1.Value) Then
qty = CDbl(TextBox1.Value)
Worksheets("Data").Range("B1").Value = qty * 100
MsgBox "数量×100 の値をシートに書き込みました"
Else
MsgBox "数値を入力してください"
End If
End Sub
VB- ポイント:
IsNumericで数値チェック。- 入力値を計算してシートに反映。
テンプレ4:複数テキストボックスをまとめて処理
UserFormに TextBox1(名前)、TextBox2(年齢)、CommandButton1 を配置。
Private Sub CommandButton1_Click()
Dim ws As Worksheet: Set ws = Worksheets("Data")
ws.Range("A2").Value = TextBox1.Value ' 名前
ws.Range("B2").Value = TextBox2.Value ' 年齢
MsgBox "入力内容をシートに保存しました"
End Sub
VB- ポイント:
- 複数のテキストボックスを使って複数項目を入力。
テンプレ5:フォームを開いたときに初期値を設定
Private Sub UserForm_Initialize()
TextBox1.Value = "ここに入力してください"
End Sub
VB- ポイント:
- フォームを開いたときに初期値を表示。
- ユーザーに入力を促す。
例題で練習
'例1:入力値を取得して表示
' → CommandButton1_Click にコードを記述
'例2:シートに書き戻す
' → CommandButton1_Click にコードを記述
'例3:数値入力を計算して書き戻す
' → CommandButton1_Click にコードを記述
'例4:複数テキストボックスをまとめて処理
' → CommandButton1_Click にコードを記述
'例5:フォーム初期化時に初期値を設定
' → UserForm_Initialize にコードを記述
VB初心者向けポイント
- TextBoxは「入力欄」 → ユーザーが文字や数値を入力できる。
- Valueプロパティで値を取得 →
TextBox1.Value。 - IsNumericで数値チェック → 数値入力を安全に扱える。
- UserForm_Initializeで初期値設定 → 入力を促す工夫。
- シートとの連携が基本 → 入力値をシートに保存、シートから読み込み。
👉 この「テキストボックス基本テンプレ」を覚えておけば、Excel VBAで 入力フォームを作り、ユーザーからの入力をシートに反映 できるようになります。
