次のコードは下図のダイアログボックスを表示し、ユーザーが入力した文字列をメッセージ表示するマクロである。空欄に入る適切な語句を解答しなさい。
なおコードはダイヤルログボックスのタイトルを省略した記述をしたものとする。
Sub Exam1()
Dim A As String
A = 【 空欄① 】("文字列を入力してください。", 【 空欄② 】 "Excel-VBA")
If A="" Then
MsgBox "キャンセルあるいは空欄です"
Else
MsgBox "入力値は" & A &"です"
End If
End Sub

1.①MsgBox ②,
2.①InputBox ②,
3.①InputBox ②;
4.①MsgBox ②;
正解
2
解説
【8章 関数】
「ダイアログボックスを表示し」とあるので上図のような文字列を入力できるダイアログボックスをInputBox関数で表します。
【InputBox関数】
文字列を入力できるダイアログボックスを表示し、ユーザーが入力した文字列を返す関数
構文
InputBox(メッセージ, タイトル,初期に表示する文字列)
●キャンセルボタンを押した場合や空欄時は「""」空欄を返します。
●上記構文の内、省略可能なのはタイトルと、初期に表示する文字列です。
●タイトルを省略した際は省略した証し残すために区切りの「,」カンマを記述します。
例
InputBox("文字列を入力してください。", 「,」 ←これの事です"Excel-VBA")

【動作例】
ユーザーの操作 | Aの値 | 表示されるメッセージ |
---|---|---|
「Excel」と入力してOKを押す | "Excel" | "入力値はExcelです" |
キャンセルボタンを押す | "" | "キャンセルあるいは空欄です" |
空欄のままOKを押す | "" | "キャンセルあるいは空欄です" |
次のコードは下図のダイアログボックスを表示し、ユーザーが入力した文字列をメッセージ表示するマクロである。
空欄に入る適切な語句を以下の選択肢から選び、番号で答えなさい。なおコードはダイヤルログボックスのタイトルを省略した記述をしたものとする。
1.①MsgBox ②,
誤り。
MsgBox 関数は、メッセージを表示するためのダイアログボックスを表示します。
InputBox とは異なり、ユーザーからの入力を受け取ることはできません。
2.①InputBox ② ,
正しい。
InputBox 関数は、ユーザーに文字列を入力するためのダイアログボックスを表示します。
最初の引数はダイアログボックスに表示するメッセージ、2 番目の引数はタイトルです。 タイトルを省略した場合、カンマを記述します。
3.①InputBox ②;
誤り。
InputBox 関数の 2 番目の引数を省略する場合、カンマを記述する必要があります。セミコロンではありません。
4.①MsgBox ②;
誤り。
MsgBox 関数は、ユーザーからの入力を受け取ることはできません。
【コード解説】
Sub Exam1()
Dim A As String
’InputBox関数が文字列を返すのでStringを型に指定する。
A = InputBox("文字列を入力してください。", , "Excel-VBA")
’InputBox関数でダイアログボックスを表示する。
'タイトルを省略するため、カンマ(,)を記述します。
'"Excel-VBA"は初期値として表示される文字列です。
If A = "" Then
’Ifステートメント…条件分岐、キャンセルボタンを押した場合や空欄時は「""」空欄を返します。空欄の場合以下の処理を行います。
MsgBox "キャンセルあるいは空欄です"
Else
’Ifステートメント…条件分岐、空欄以外の時の処理
MsgBox "入力値は" & A & "です"
End If
End Sub