トップ > 学習するには > サンプル問題 > サンプル問題:Excel VBA スタンダード

サンプル問題:Excel VBA スタンダード

Excel VBAスタンダードは、Office製品のバージョン2000から2010までを網羅したExcelのVBAスキルを測定します。
プロパティやメソッドなど、Excel VBAの基本文法を理解してベーシックレベルよりも高度なマクロを記述・読解する能力を診断します。
スタンダードレベルで診断するスキルには、ベーシックレベルの内容をより深めた知識に加えて、配列、ファイルの操作、OLE、ユーザーフォームの利用などが含まれます。

この科目の試験概要をみる

サンプル問題

サンプル問題1

イミディエイトウィンドウでは実行できないステートメントはどれか。次の中から1つ選びなさい。

  1. ?Range("A5").Value
  2. MsgBox "Hello!"
  3. Dim x As Integer
  4. For i = 1 To 10:total = total + i:Next i:Print total

サンプル問題2

次のような2つのプロシージャを同一の標準モジュール上に作成した。「M_Proc」プロシージャの実行結果はどうなるか。次の中から正しいものを1つ選びなさい。

Sub M_Proc ()
    Dim a As Long
    a = F_Proc(3)
    MsgBox a
End Sub

Function F_Proc(Optional x As Long = 5) As Long
    F_Proc = x * 2
End Function
  1. 6
  2. 9
  3. 10
  4. 実行時エラーが発生する

サンプル問題3

次のイベントプロシージャはブックに新しいシートを挿入したときに実行される。挿入されたシートのシート名を、ユーザーがダイアログボックスから入力した名前に変更させたい。このとき、【 1 】に入る適切な命令を解答欄に入力しなさい。ただし、シート名の重複などのエラー処理は省略しているものとする。

Private Sub Workbook_NewSheet(ByVal Sh As Object)
    Dim strSheetName As String
    strSheetName = InputBox("新しいシートの名前を入力してください")
    If strSheetName <> "" Then
        【 1 】.Name = strSheetName
    End If
End Sub

サンプル問題4

次のプロシージャはセルA1の値に応じてメッセージを表示するものである。セルA1の値が3未満だったら「A」と表示させたい。このとき、【 1 】に入る適切な命令を解答欄に入力しなさい。

Sub Sample()
    Select Case Range("A1").Value
        Case 【 1 】
            MsgBox "A"
        Case 5
            MsgBox "B"
        Case 7 To 9
            MsgBox "C"
        Case Else
            MsgBox "該当なし"
    End Select
End Sub

サンプル問題5

次の図のように、メッセージボックスに[はい]ボタン、[いいえ]ボタンおよび情報メッセージアイコンを表示したい。このとき、【 1 】に入る命令はどれか。次の中から正しいものを1つ選びなさい。
Excel VBA スタンダード サンプル問題5

Ret = MsgBox("処理時間は約3分です。処理を開始しますか?", 【 1 】)
  1. vbYes + vbNo + vbInformation
  2. vbYesNo + vbInformation
  3. vbYesNo , vbInformation
  4. vbYesNo & vbInformation

サンプル問題6

プロシージャの中で文字列型のデータを3つ使いたい。要素数3の配列を宣言するとき、【 1 】に入る適切な命令を解答欄に入力しなさい。ただし、配列の名前は「myArray」とする。

【 1 】 As String

サンプル問題7

次のプロシージャは、セルのコンテキストメニューを追加するものである。セルの右クリックから[売上データ読み込み]を選択したとき、「Proc_Uriage1」プロシージャが実行されるように、コマンドを割り当てたい。このとき、【 1 】に入る適切な命令を解答欄に入力しなさい。

Sub Sample()
    With Application.CommandBars("Cell").Controls.Add
        .Caption = "売上データ読み込み"
        .【 1 】= "Proc_Uriage1"
        .Visible = True
    End With
End Sub

サンプル問題8

次のプロシージャは、Cドライブにある「password.txt」ファイルを開き、1行目に記述されたパスワードをメッセージボックスに表示するものである。【 1 】に入る命令として最も適切なものを次の中から1つ選びなさい。ただし、「password.txt」ファイルの1行目にはパスワードを表す文字列のみが記述されているものとする。

Sub Sample()
    Dim myPassword As String
    Open "C:\password.txt" For Input As #1
        【 1 】 #1, myPassword
        MsgBox myPassword
    Close #1
End Sub
  1. Read
  2. Get
  3. Get Line
  4. Line Input

サンプル問題9

次のプロシージャは選択されたセルの値をリストボックスに設定して、ユーザーフォームを表示するものである。【 1 】に入る適切な命令を解答欄に入力しなさい。ただし、リストボックスの名前は「ListBox1」、ユーザーフォームの名前は「UserForm1」とする。

Sub Sample()
    Dim c As Variant
    For Each c In Selection
        UserForm1.ListBox1.【 1 】 c 
    Next
    UserForm1.Show
End Sub

サンプル問題10

次のプロシージャは、引数で受け取ったユーザー名と現在の日時を「C:¥LoginLog.txt」に追記するものである。このプロシージャ実行時にエラーが発生したときには、エラー番号とその内容をメッセージボックスに表示したい。このとき、【 1 】に入る適切な命令を解答欄に入力しなさい。

Sub Sample(UserName As String)
    On Error GoTo ErrHandl

    Open "C:\LoginLog.txt" For Append As #1
    Print #1, UserName & vbTab & Now
    Close #1
    Exit Sub
    
ErrHandl:
    MsgBox "エラー番号:" & Err.Number & vbCrLf & _
     "エラー内容:" & Err.【 1 】
End Sub