応用練習問題
では「ユーザー入力を受け取って改行付きで表示する」応用練習問題です。初心者でも段階的に理解できるように、問題 → 回答例 → 解説の流れでまとめます。
問題1:名前と年齢を入力して改行表示
ユーザーに「名前」と「年齢」を入力してもらい、セル A1 に次のように改行して表示してください。
名前: ○○
年齢: ○○
回答例
Sub Q1_InputNameAge()
Dim uname As String
Dim age As String
uname = InputBox("名前を入力してください")
age = InputBox("年齢を入力してください")
Range("A1").Value = "名前: " & uname & vbLf & "年齢: " & age
End Sub
VB解説
InputBoxでユーザーから入力を受け取る。- セル内改行なので vbLf を使用。
- 実行すると、A1に2行で表示される。
問題2:入力内容をメッセージボックスで表示
ユーザーに「商品名」と「数量」を入力してもらい、メッセージボックスに次のように表示してください。
商品名: ○○
数量: ○○
回答例
Sub Q2_InputProduct()
Dim product As String
Dim qty As String
Dim msg As String
product = InputBox("商品名を入力してください")
qty = InputBox("数量を入力してください")
msg = "商品名: " & product & vbNewLine & "数量: " & qty
MsgBox msg, vbInformation, "注文内容"
End Sub
VB解説
- MsgBoxでは vbNewLine を使うのが安全。
vbInformationを指定すると情報アイコン付きで表示される。
問題3:複数の入力をまとめてセルに表示
ユーザーに「住所(都道府県、市区町村、番地)」を順番に入力してもらい、セル B2 に3行で表示してください。
回答例
Sub Q3_InputAddress()
Dim pref As String, city As String, street As String
pref = InputBox("都道府県を入力してください")
city = InputBox("市区町村を入力してください")
street = InputBox("番地を入力してください")
Range("B2").Value = pref & vbLf & city & vbLf & street
End Sub
VB解説
- セル内改行なので vbLf を使用。
- 入力を順番に受け取り、1つのセルにまとめて表示。
問題4(発展):入力チェック付き
ユーザーに「名前」と「メールアドレス」を入力してもらい、どちらかが空欄ならエラーメッセージを改行付きで表示してください。
回答例
Sub Q4_InputCheck()
Dim uname As String, mail As String
Dim errmsg As String
uname = InputBox("名前を入力してください")
mail = InputBox("メールアドレスを入力してください")
If uname = "" Or mail = "" Then
errmsg = "未入力項目があります" & vbNewLine
If uname = "" Then errmsg = errmsg & "- 名前" & vbNewLine
If mail = "" Then errmsg = errmsg & "- メールアドレス"
MsgBox errmsg, vbExclamation, "エラー"
Else
MsgBox "入力完了しました", vbInformation
End If
End Sub
VB解説
- 入力が空かどうかを
Ifでチェック。 - エラーメッセージは vbNewLine で改行しながら箇条書きに。
- すべて入力されていれば「入力完了」と表示。
まとめ
- セルに表示 → vbLf
- MsgBoxに表示 → vbNewLine
- ユーザー入力と組み合わせると実用的なプログラムになる

