Excel VBA ベーシック 模擬問題 模擬試験

Excel VBA ベーシック 模擬問題 ランダム順出題 ② 第34問

以下のコードを実行し、表示されたメッセージボックスで「キャンセル」ボタンをクリックしました。このとき、メッセージボックスには何と表示されるか。

選択肢の中から正しいものを1つ解答しなさい。

 

Sub Exam1()

 Dim N As Long

   N = MsgBox("処理を継続しますか?", vbYesNoCancel)

 If N = vbCancel Then

   MsgBox "処理を中止しました。"

 ElseIf N = vbYes Then

   MsgBox "処理を継続します。"

 Else

   MsgBox "処理を中止しました。

 End If

End Sub

 

 

1.処理を継続します。

2.処理を中止しました。

3.処理を中止しました。

4.エラーが発生します。

 

正解

2

解説

【8章 関数】

MsgBox関数 戻り値・引数括弧

MsgBox関数はメッセージとして指定した文字列を画面に表示します。

 またボタンやアイコン、タイトルを指定することや、ユーザーがどのボタンを押したか結果を返すこともできます。

構文

MsgBox(表示するメッセージ, ボタンやアイコン定数)

ボタンを押した際には、以下の戻り値を返します。

VBA ベーシック 関数

ボタンが「OKボタン」のみときは、ボタンを押しても戻り値を判定する必要がないので、戻り値がありませんので引数に()括弧は使用しません。

MsgBox "お知らせ"

VBA ベーシック 関数

 

以下のコードを実行し、表示されたメッセージボックスで「キャンセル」ボタンをクリックしました。このとき、メッセージボックスには何と表示されるか。

選択肢の中から正しいものを1つ解答しなさい。

【コード解説】

Sub Exam1()

 Dim N As Long

’戻り値の実体は数値ですので数値型で変数を宣言します。

   N = MsgBox("処理を継続しますか?", vbYesNoCancel)

' 「はい」「いいえ」「キャンセル」ボタンが表示されるメッセージボックス

 If N = vbCancel Then

「キャンセル」が選択された時は以下の処理を行います。

   MsgBox "処理を中止しました。"

 ElseIf N = vbYes Then

「はい」が選択された時は以下の処理を行います。

   MsgBox "処理を継続します。"

 Else

   MsgBox "処理を中止しました。

’「いいえ」が選択された時の処理。

 End If

End Sub

 

1.処理を継続します。

誤り。

このメッセージは、ユーザーがメッセージボックスの「はい」ボタンをクリックした場合に表示されます。

 

2.処理を中止しました。

正しい。

ユーザーがMsgBoxで「キャンセル」ボタンをクリックすると、MsgBox関数は vbCancel という値を返します。

コードはその戻り値を変数 N に格納し、If N = vbCancel Then の条件が真となるため、「処理を中止しました。」というメッセージボックスが表示されます。

 

3.処理を中止しました。

誤り。

このメッセージは、ユーザーがメッセージボックスの「いいえ」ボタンをクリックした場合に表示されます。

 

4.エラーが発生します。

誤り。

MsgBox関数はユーザーのボタンクリックに応じて適切な戻り値を返すため、このコードはエラーにはならず、条件分岐に従って実行が進みます。