【ランダム順出題】Excel VBA スタンダード 模擬試験 問題バンクから40問出題 Excel VBA スタンダード 模擬問題 模擬試験 2025.09.292026.01.10 【試験の形式について】 この試験は、多数の問題の中から毎回自動でランダムに出題される形式をとっています。そのため、問題の出題順や選択肢の並び順は、受験のたびにシャッフルされます。 (時間制限について) 多数の問題から出題している性質上、厳密な時間制限は設けておりません。 目安として50分程度で解答されることを想定していますが、ご自身のペースで、時間を気にせずじっくりとお取り組みください。 準備が整い次第、ボタンを押して試験を開始してください。 1. __________,__________ 以下のコードはオブジェクト変数を用いて、シートの追加やアクティブシートを指定するマクロである。 マクロ実行後のアクティブシートのシート名を解答しなさい。・マクロ実行後のアクティブシートのシート名は である。なおオブジェクト変数「ws1」に格納されたシートの名前は「Sheet1」である。 Sub Exam1() Dim ws1 As Worksheet , ws2 As Worksheet Set ws1= ActiveSheet Set ws2 = Worksheets.Add ws1.Activate ws2. Name = "Total" End Sub 2. __________,__________ 以下のコードは配列を使用し、実行した結果メッセージに"Canada"が表示されるマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim countries( To 4) As String countries(0) = “Canada” countries(1) = “France” countries(2) = “Germany” countries(3) = “Italy” countries(4) = “Japan” MsgBox countries(「上記空欄と同じ」) End Sub 3. __________,__________ 以下のコードは、表の2列目が “Canada “または"United Kingdom"の条件で絞り込むマクロである。 空欄に入る語句を解答しなさい。 Sub Exam1() Range( “A1 “).AutoFilter 2, “Canada “, , “United Kingdom" End Sub 4. __________,__________ 次のコードは、新たにDocumentsフォルダの下にReportsフォルダを作成するマクロである。 以下の空欄に入る適切な語句を解答しなさい。 Sub Exam1() "C:¥Documents¥Reports" End Sub 5. __________,__________ 次のコードは、For…Nextステートメントを用いて、1列目の値が”Boxing” か”Swimming”のときは2列目に”〇”を代入し、 それ以外の時は2列目に”Ballgame”を代入するマクロである。 空欄に入る適切な語句を入力しなさい。 Sub Exam1() Dim i As Long For i = 2 To 11 Select Case Cells(i, 1) Case “Boxing” “Swimming” Cells(i, 2) = “〇” Case Cells(i, 2) = “Ballgame” End Select Next i End Sub 6. __________,__________ 次のコードは、テーブルのすべてをSheet11のセルB2へコピーするマクロである。 以下の空欄に入る適切な語句を解答しなさい。 Sub Exam1() Range("table1 ").Copy Sheets("Sheet11").Range("B2") End Sub 7. __________,__________ 並べ替えを実行する際、の説明として以下の空入る正しいものを解答しなさい。・タイトル行(ヘッダー)があるかどうかをExcelに自動判別させる設定としてを引数として指定する。なお数値で指定する場合はを指定する。 8. __________,__________ 次のコードはテーブルにオートフィルターをかけた後、 構造化参照でデータ部分から行を特定し、フィルターで特定したデータを含む行全体を削除するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Range(”table1”).AutoFilter 3, ”900” Range(”table1 ”).EntireRow.Delete Range(”table1”).AutoFilter 3 End Sub 9. __________,__________ 次のコードは、引数を使わず変数Cを共有し初期値を設定するマクロである。 1 ~ 4の内 で変数の宣言と初期化を行うのが適切である。適切なものを解答しなさい。 変数の宣言と初期化: Dim C As Long Option Explicit 【 1 】 Sub Exam1() 【 2 】 C = 10 Call Exam2 End Sub Sub Exam2() 【 3 】 C = C + 5 Call Exam3() End Sub Sub Exam3 【 4 】 MsgBox "Cの値は" & C End Sub 10. __________,__________ 次のコードはテーブル全体をコピーするマクロである。 空欄に入る適切な語句を解答しなさい。なおテーブルの名前は画像の左上に表示されています。 Sub Exam1() With Range(" [ ]") .Copy Sheets("Sheet12").Range("B2") End With End Sub 11. __________,__________ 次のコードは、2列目に入力されている日付から、前月の月末日を3列目に代入するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim i As Long For i = 2 To 6 Cells(i, 3) = WorksheetFunction. (Cells(i, 2), ) Next i End Sub 12. __________,__________ 次のコードは、1列目を”7”を検索し、見つかったセルを含む1列目から3列目までのセルをコピーし貼り付けするマクロである。 マクロ実行後セルF2内の値はある。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim A As Range Set A = Range(“A:A”).Find (What:=“7”) If A Is Nothing Then MsgBox “0” Else A. Resize (1, 3). Copy Range(“E2”) End If End Sub 13. __________,__________ 次のコードは、Cドライブ下の”Documents”フォルダ内にreport.xlsxというファイルがあるか調べ、 ある場合はメッセージボックスにファイル名を表示するマクロである。 空欄に入る適切な語句を入力しなさい。 Sub Exam1() Dim A As String A = (“C:\Documents\report.xlsx”) If A ““ Then MsgBox “OK:” & A Else MsgBox “NG” End If End Sub 14. __________,__________ 配列に関する用語の説明として、正しい組み合わせを選択肢の中から1つ選びなさい。 値を格納する箱を「要素」、箱番号を「インデックス番号」と呼ぶ。 値を格納する箱を「メンバ」、箱番号を「プロパティ」と呼ぶ。 値を格納する箱を「引数」、箱番号を「要素数」と呼ぶ。 値を格納する箱を「変数」、箱番号を「タグ番号」と呼ぶ。 None 15. __________,__________ 次のマクロはオブジェクト変数を使用したマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim wb As Dim N As Range Set wb = ThisWorkbook Set N = wb.Sheets(1).Range("A1") N.Resize(1, 2).Copy wb.Sheets(1).Range("C1") End Sub 16. __________,__________ 以下の選択肢はデバッグモードに関する説明である。 誤っているものを、選択肢の中から1つ解答しなさい。 デバッグモードになると、実行後の行が黄色くハイライトとなる、マクロが一時停止状態になる。 デバッグモードの目的はミスの修正を行うことである。 エラー発生後デバッグモードに移行するかどうかは、エラーのダイアログボックスでユーザーが選択できる。 エラーが発生してもデバッグを行わないときはエラーのダイアログボックスの終了ボタンをクリックする。 None 17. __________,__________ 次のコードを実行したときの結果について、正しいものを以下の選択肢の中から選びなさい。 Sub Exam1() Dim N As String N = Test("Baseball") MsgBox N End Sub Function Test(F) Dim A As String A = ”Football” F = F & A End Function ”Baseball&Football”が表示される。 ”F&A”が表示される。 ”BaseballFootball”が表示される。 何も表示されない。 None 18. __________,__________ 次のコードは、セルの値が日付かどうかを判定し、日付であれば"True"、日付でなければ"False"をメッセージボックスに表示するマクロです。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim i As Variant i = Range(“A1”).Value If (i) Then MsgBox “True” Else MsgBox “False” End If End Sub 19. __________,__________ 次のコードは、テーブル内の見出しを含む3列目を指定するマクロである。 以下の空欄に入る適切な語句を解答しなさい。 Sub Exam1() Range("table1[[ ],[]]").Select End Sub 20. __________,__________ 以下のコード「Exam1」と「Exam2」は同じ結果になるマクロである。 以下の空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim i As Long, A As Long i = 1 Do A = A + Cells(i, 1) * 2 i = i + 1 Loop Cells(i, 1) = "STOP" MsgBox A End Sub ーーーーーーーーーーーーーーーーー Sub Exam2() Dim i As Long, A As Long i = 1 Do A = A + Cells(i, 1) * 2 i = i + 1 Loop While Cells(i, 1) "STOP" MsgBox A End Sub 21. __________,__________ 次のコードは、漢字が入力されているC列各セルに対して、 ふりがなが設定されていればそのふりがなを、 ふりがなの設定がなく漢字がそのまま入力されている時 は"0"と、D列の各セルに入力するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim i As Long For i = 2 To 10 If Cells(i, 3). .Text = "" Then Cells(i, 4) = "0" Else Cells(i, 4) = Cells(i, 3).「上記空欄①と同じ」. End If Next i End Sub 22. __________,__________ 次のコードは、D列を基準に昇順で並べ替えるマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() With Sheets(“Sheet2”).Sort .SortFields.Clear .SortFields.Add2 Key:=Range(“D2”), SortOn:=xlSortOnValues, Order:=, DataOption:=xlSortNormal .SetRange Range(“A1:D11”) .Header = xlYes .Apply End With End Sub 23. __________,__________ 次の文章はイミディエイトウィンドウのコードウィンドウの切り離しについての説明です。 空欄に入る適切な語句を解答しなさい。 ・イミディエイトウィンドウは、タイトルバーをドラッグすることでコードウィンドウから分離し、任意の位置に配置することができます。 ・コードウィンドウに接続されている状態を 【 ① 】 と呼び、分離した状態を 【 ② 】 と呼びます。 ①の状態図 ②の状態図 ① フローティング , ②ドッキング ①固定 , ② ドッキング ング ①ドッキング , ②フローティング ①タイリング , ②フローティング None 24. __________,__________ 以下のコードは、B列のセル内の文字列を結合し結果をメッセージボックスで表示するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim i As Long, N As String For i = 2 To 8 N = N %BLANK% Cells(i, 2) Next i MsgBox N End Sub And Plus = & None 25. __________,__________ 次のコードは、2列目の値が600から750のときは3列目に”Medium”を代入し、1000または1100の値の時は3列目に”High”を代入するマクロである。 以下の空欄に入る適切な語句を入力しなさい。 Sub Exam1() Dim i As Long For i = 2 To 11 Select Case Cells(i, 2) Case 600 750 Cells(i, 3) = “Medium” Case 1000 1100 Cells(i, 3) = “High” End Select Next i End Sub 26. __________,__________ 以下のコードは、エラーが発生したら処理をError1:へジャンプさせ、エラーの内容をイミディエイトウィンドウに表示するマクロである。 空欄に入る適切な語句を選択肢より解答しなさい。 Sub Exam1() On Error Goto ErrorHandler Dim ws As Worksheet Set ws = Worksheets("Sheet") ws.Range("A1") = Cells(1, 1).Value Exit Sub ErrorHandler: Debug.Print "Error" & 【 空欄 】 .Description End Sub Err On Error GoTo Error None 27. __________,__________ 次のコードは、セル範囲B1からB10に入力された数値のうち、 大きい順から数えて2番目の値をセルD1に代入するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Range("D1") = WorksheetFunction. (Range("B1:B10"), 2) End Sub 28. __________,__________ 次のコードは、2列目が"Germany"であるデータを、見出し行も含め全てSheet5のセルB1へコピーするマクロである。コードの実行結果 個分のセルがコピーされた。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() With Range("A1").ListObject.Range .AutoFilter 2, "Germany" .Copy Sheets("Sheet6").Range("B1") .AutoFilter 2 End With End Sub 29. __________,__________ 次のコードは実行すると「Banana」と表示するマクロである。 以下の空欄に入る適切な語句を入力しなさい。 Sub Exam1() Dim A As Range Set A = Range("A2:A10").Find(What:=" ", Lookat:= xlWhole) MsgBox A.Offset(0, 1) End Sub 30. __________,__________ 次のコードは、A列の値をカンマで区切り、B列に代入するマクロである。 セルB6に入力された値はどれか選択肢より適切なものを解答しなさい。 Sub Exam1() Dim i As Long, A As Variant, C As Variant For i = 2 To 11 A = Split(Cells(i, 1), ”,”) For Each C In A If IsNumeric(C) = True Then Cells(i, 2) = C End If Next C Next iEnd Sub B Japan 789 BJapan789 None 31. __________,__________ 次のコードはB列が”Tomato”だった時の、C列の合計を表示するマクロである。 実行後、メッセージに表示された値は である。 空欄に入る適切な値を解答しなさい。 Sub Exam1() Dim i As Long, N As Long For i = 2 To 10 If Cells(i, 2) = "Tomato" Then N = N + Cells(i, 3) End If Next i MsgBox N End Sub 32. __________,__________ 次のコードは、ブックを続けて開き、その後ブック名をメッセージで表示するマクロである。 以下の空欄に入る適切な語句を選択肢の中から解答しなさい。 ・マクロ実行後、最後にアクティブ状態となるブックは【 ① 】である。 Sub Exam1() Dim i As Long For i = 2 To 5 Workbooks.Open “C:\Data\” & ThisWorkbook.ActiveSheet.Cells (i, 1)& ".xlsx" Next i MsgBox ActiveWorkbook.Name End Sub 3.xlsx total.xlsx 1.xlsx 2.xlsx None 33. __________,__________ 次のコードを実行した時に、メッセージボックスに表示される語句を解答しなさい。 Sub Exam1() Dim countries() As String Redim countries(4) countries(0) = “Canada” countries(1) = “France” countries(2) = “Germany” countries(3) = “Italy” countries(4) = “Japan” MsgBox countries(3) End Sub 何も表示されなかった。 Italy Japan Germany None 34. __________,__________ 次のコードは、対象のセル範囲に負の数があれば、メッセージボックスに”-”と表示後、繰り返し処理を終了し、"0"が見つかった場合にはメッセージを表示後、プロシージャを終了するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim cell As Range Dim sourceRange As Range Set sourceRange = Worksheets("Sheet1").Range("A1:A10") For Each cell In sourceRange If cell.Value < 0 Then MsgBox "-" Exit ElseIf cell.Value = 0 Then MsgBox "0" Exit End If Next cell End Sub 35. __________,__________ マクロを特定の行で一時停止(中断)させる方法に関する説明として、不適切なものを選択しなさい。 キーボードの「F9」キーを押してブレークポイントを設定する。 コードの中に「Stop」ステートメントを記述する。 コードの中に「Pause」ステートメントを記述する。 停止したい行の左側をクリックして「ブレークポイント」を設定する。 None 36. __________,__________ 次のコードは、変数Bのデータの形式を判定してメッセージボックスに表示するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim B As Variant B = 123.45 If (B) = “Double” Then MsgBox “Bの型は「Double」です” Else MsgBox “Bの型は「Double」ではありません” End If End Sub 37. __________,__________ セル内の文字列をStrConv関数で半角にしたい。このような場合に使用する最適な定数はどれか。 次の選択肢の中から1つ解答しなさい。 vbUpperCase vbWide vbKatakana vbNarrow None 38. __________,__________ 次のコードは、表のセル範囲を一行目は見出し行とし、2列目を基準に降順に並び替えるマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() With Sheets(“Sheet2”).Sort .SortFields.Clear .SortFields.Add2 Key:=Range(“B2”), Order:=xlDescending .SetRange Range(“A1:C11”) .Header = .MatchCase = False .Orientation = xlTopToBottom .Apply End With End Sub 39. __________,__________ 次のコードは表内を、セルF1に入力された文字列を表内の位置を探し、 見つけた位置を参照して、B列の値をセルG1に入力するマクロである。コード実行後セルG1に入力された値は【 ① 】である。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim N As Long With WorksheetFunction N = .Match(Range(“F1”), Range(“C2:C10”), 0) Range(“G1”) = .Index(Range(“B2:B10”), N) End With End Sub United States 600 United Kingdom Japan None 40. __________,__________ 次のコードはテーブルの右側に列を追加し、セルに値を入力するコードである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim A As Long With Range("A1").ListObject .ListColumns. A = .ListColumns.Count .ListColumns(A).DataBodyRange = "=[@Data3]*0.7" End With End Sub Time's up