【Excel VBA】入力ボックスを表示する基本コードとやさしい解説

VBA & Excel
スポンサーリンク
スポンサーリンク

はじめに

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
decopon

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

moco
moco

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

コメント

タイトルとURLをコピーしました