次のコードは下図のダイアログボックスを表示し、ユーザーが入力した文字列をメッセージ表示するマクロである。空欄に入る適切な語句を解答しなさい。
なおコードはダイヤルログボックスのタイトルを省略した記述をしたものとする。
Sub Exam1()
Dim A As String
A = 【 ① 】("文字列を入力してください。", 【 ② 】 "Excel-VBA")
If A="" Then
MsgBox "キャンセルあるいは空欄です"
Else
MsgBox "入力値は" & A &"です"
End If
End Sub
正解
【 ① 】inputbox 【 ② 】,
解説
【8章 関数】
「ダイアログボックスを表示し」とあるので上図のような文字列を入力できるダイアログボックスをInputBox関数で表します。
【InputBox関数】
文字列を入力できるダイアログボックスを表示し、ユーザーが入力した文字列を返す関数
構文
InputBox(メッセージ, タイトル,初期に表示する文字列)
●キャンセルボタンを押した場合や空欄時は「""」空欄を返します。
●上記構文の内、省略可能なのはタイトルと、初期に表示する文字列です。
●タイトルを省略した際は省略した証し残すために区切りの「,」カンマを記述します。
例
InputBox("文字列を入力してください。", 「,」 ←これの事です"Excel-VBA")
【動作例】
ユーザーの操作 | Aの値 | 表示されるメッセージ |
---|---|---|
「Excel」と入力してOKを押す | "Excel" | "入力値はExcelです" |
キャンセルボタンを押す | "" | "キャンセルあるいは空欄です" |
空欄のままOKを押す | "" | "キャンセルあるいは空欄です" |
【コード解説】
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