スタンダード 模擬問題

Excel VBA スタンダード 模擬問題 ① 第37問 9章-4

次のコードはエラーが発生した際に、エラー番号からメッセージを表示するマクロである。 空欄に入る適切な語句を解答しなさい。

Sub Exam1()

 On Error Goto Error1

 Sheets("Sheet3"). Name = Range("C1")

 Exit Sub

Error1:

 Select Case 【 ① 】.【 ⓶ 】

 Case9

  MsgBox ”対象のブック内にSheet3はありません”

 Case Else

  MsgBox ”想定外の何らかのエラーが発生しました”

 End Select

End Sub

 

正解

【 ① 】err

【 ② 】number

解説

発生したエラーの、エラー情報やエラー番号はErrオブジェクトに格納されます。
Numberプロパティでエラーごとに決まっているエラー番号を返して、プログラムがどの様なエラーが発生したかを判断し、適切なエラーコントロールを行います。

エラー番号
・・・”インデックスが有効範囲にありません。” 本問題のケースだとブック内にシート名Sheet3が存在しないときに表示されます。.

1004・・・同じ名前のブックが存在する。ブック名に不正な文字がある、ブックが保護されているなど。

他にもエラー番号は存在しますが代表的なものは上記2点です。

[コード解説]

Sub Exam1()

 On Error GoTo Error1

' エラーが発生した場合にError1ラベルへジャンプするように設定しています。

 Sheets("Sheet3").Name = Range("C1")

' シート「Sheet3」の名前をセルC1の値に変更します。

 Exit Sub

' エラーがなければ通常終了します。

Error1:

' エラー処理を開始します。

 Select Case Err.Number

' Err.Numberを使用してエラー番号を取得し、条件分岐します。

 Case 9

' エラー番号が9の場合、対象のブック内にSheet3がないと判断してメッセージを表示します。

  MsgBox "対象のブック内にSheet3はありません"

 Case Else

' その他のエラーについては、想定外のエラーとしてメッセージを表示します。

  MsgBox "想定外の何らかのエラーが発生しました"

 End Select

End Sub