はじめに
VBAで作業をしていると、
「ユーザーに値を入力してほしい」
「確認のために一言だけ入力してもらいたい」
そんな“ちいさな対話”が必要になることがあります。
そこで活躍するのが 入力ボックス(InputBox) です。
ここでは、入力ボックスの基本の使い方と、
実務で役立つ書き方を解説します。
まずはコードを確認
Dim v As Variant
v = InputBox("名前を入力してください。")
もっともシンプルな書き方です。
ユーザーが入力した値が v に入ります。
入力ボックスの基本
メッセージだけを表示する
InputBox "値を入力してください。"
タイトルをつける
InputBox "値を入力してください。", "入力のお願い"
タイトルがあると、やさしい印象になります。
入力値を変数に入れる
Dim userInput As String
userInput = InputBox("コメントを入力してください。", "コメント入力")
入力された文字列が userInput に入ります。
キャンセルされたかどうかを判定する
Dim v As Variant
v = InputBox("値を入力してください。")
If v = "" Then
MsgBox "キャンセルされました。"
Else
MsgBox "入力された値:" & v
End If
キャンセル時は空文字が返るため、判定できます。
具体的な例で理解する
セルに入力された値を反映する
Dim v As Variant
v = InputBox("A1 に入れる値を入力してください。")
If v <> "" Then
Range("A1").Value = v
End If
ユーザーの入力をそのままセルに反映できます。
数値入力を求める
Dim n As Double
n = Val(InputBox("数量を入力してください。"))
If n > 0 Then
MsgBox "数量:" & n
End If
Val を使うと数値として扱いやすくなります。
入力が必須の場合のループ処理
Dim v As String
Do
v = InputBox("必須項目です。入力してください。")
Loop While v = ""
MsgBox "入力された値:" & v
実務でよく使う“必須入力”のパターンです。
InputBox の引数まとめ(よく使うもの)
| 引数 | 内容 |
|---|---|
| Prompt | メッセージ |
| Title | タイトル |
| Default | 初期値 |
| XPos / YPos | 表示位置(通常は省略) |
注意点(実務で気をつけたいこと)
- 入力ボックスは処理を止める
→ 自動処理(バッチ処理)では使わない方が安全です。
- 入力値は文字列として返る
→ 数値として扱う場合は Val や CLng を使うと安心です。
- 長い入力には向かない
→ 長文入力が必要な場合は UserForm の方が適しています。
まとめ
- InputBox でユーザーに値を入力してもらえる
- タイトルや初期値をつけると、やさしい印象になる
- キャンセル判定や必須入力など、実務で役立つ使い方が多い
- 入力値は文字列として返るため、必要に応じて変換する
- 自動処理では使わず、対話が必要な場面で活躍する
入力ボックスは、
ユーザーとの“ちいさな対話”を支える大切な機能です。

decopon
入力ボックスは、ユーザーにそっと問いかけるような機能です。
必要なときにだけ、やさしく声をかけるように使うと、
VBAの動きがぐっとわかりやすくなります。

moco
ぽこんって出てきて、入力を待ってくれるのがかわいいよね。
VBAは、そんな小さなやりとりも上手なんだ。

コメント