【ランダム順出題】Excel VBA スタンダード 模擬試験 ② Excel VBA スタンダード 模擬問題 模擬試験 2025.09.282025.10.02 【ランダム順出題】Excel VBA スタンダード 模擬試験 ② 1. __________,__________ 以下のコードは、2列目が"Japan"であるセルと同じ行の3列目に入力されている数値を合計して、セルE2に表示するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim A As Long Range("E2") = WorksheetFunction. (Range("B2:B10"), "Japan", Range("C2:C10")) End Sub 2. __________,__________ 以下のコードはマクロが書かれているブック上のセルを値を取得し、ブックを一つずつ開き、 最後にアクティブ状態のブック名を表示するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim i As Long For i = 2 To 5 Workbooks.Open "C:\Data\" & .ActiveSheet.Cells(i, 1) & ".xlsx" Next i MsgBox ActiveWorkbook.Name End Sub 3. __________,__________ 以下のコードは、表の2列目が “Canada “または"United Kingdom"の条件で絞り込むマクロである。 空欄に入る語句を解答しなさい。 Sub Exam1() Range( “A1 “).AutoFilter 2, “Canada “, , “United Kingdom" End Sub 4. __________,__________ Stopステートメントに関する説明として正しいものを、次の選択肢の中から1つ解答しなさい。 Stopステートメントは、コードの実行を一時的に停止するが、その後の実行再開は自動的に行われる。 Stopステートメントは、Ifステートメントなどの条件式と組み合わせることはできない。 Stopステートメントは、プロシージャ内に複数設定することができ、コードの異なる場所で実行を中断させるのに利用できる。 Stopステートメントは、プロシージャ内で1回しか使用できない。 None 5. __________,__________ 文字列が含まれるセルがあるかどうかを判定してメッセージを表示するマクロである。 空欄に入る適切な語句を解答しなさい。 なおFunctionプロシージャ内のInStr関数は、検索文字列の指定のセル範囲で見つかった場合は位置を数値で返し、見つからなかった場合は0を返す関数である。 Sub Exam1() Dim SearchCell As String SearchCell = InputBox("探したい文字列は?") If SearchCell "" Then If FindStringInSheet (SearchCell) = True Then MsgBox("検索した文字列は見つかりました。") Else MsgBox("検索した文字列は見つかりませんでした。") End If End If End Sub Function FindStringInSheet(searchString As String) As Boolean Dim cell As Range For Each cell In ActiveSheet.Range("A1:C11") If InStr(cell.Value, searchString) > 0 Then FindStringInSheet = True Exit Function End If Next cell FindStringInSheet = End Function 6. __________,__________ 次のコードは、Do…Loopステートメントにより変数の値が指定した条件まで 処理を繰り返し続け、指定条件となった時は、処理を抜けてLoopの次の行からの処理を行うマクロである。 以下の空欄に入る適切な値を解答しなさい。 :Exit Doが実行されるとき変数「i」の値は である。 Sub Exam1() Dim i As Long, N As Long Do While i < 100 i = i + 1 Cells(i, 1).Offset(0, 2) = 20 N = N + 20 If N > 150 Then Exit Do End If Loop MsgBox “End” End Sub 7. __________,__________ 以下のコードは、ブックの最後のシートのセルD5に"Country"と入力するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim ws As ws = ThisWorkbook.Sheets(ThisWorkbook.Sheets.count) ws.Range("D5").Value = "Country" End Sub 8. __________,__________ 以下の文章はテーブルの部位「行」を指定する説明である。 空欄に入る適切な語句を解答しなさい。 ・テーブルの「行」を指定する方法 構造化参照を使って(Rangeとテーブル名を使用して)、テーブルの行を指定することはできません。 テーブルの行を指定したいときは、ListObject. で行全体を表します。 9. __________,__________ データ内の英数字を全角あるいは半角にしたい。このような場合に使用する最適な関数はどれか。 次の選択肢の中から1つ解答しなさい。 StrConv Replace Resize Format None 10. __________,__________ 以下のコードは、1列目に入力されている "-"で囲まれた国名を抜き出して、2列目に代入するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim i As Long Dim A As For i = 2 To 10 A = Split(Cells(i, 1), "-") Cells(i, 2) = A(1) Next i End Sub 11. __________,__________ 以下のコードは、指定したセル範囲から値をひとつずつ取り出し、変数に格納するマクロである。 実行後メッセージに表示された値は である。 空欄に入る適切な値を解答しなさい。 Sub Exam1() Dim N As Range, A As Long For Each N In Range("A1:A10") A = A + N Next N MsgBox A End Sub 12. __________,__________ 以下のコードは、A列を検索し、見つかったセルからC列までをセルE2へコピーするマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim A As Range Set A = Range(“A:A”). Find (What:=“8”) If A Is Nothing Then MsgBox “0” Else Range(A, A.End()).Copy Range(“E2”) End If End Sub 13. __________,__________ 以下コードは条件を満たした際に、処理を実行する条件分岐のマクロである。 セルD11にはセルD2からD10の合計値が表示されます。 マクロ実行時のセルD11の値は である。 Sub Exam1() Dim i As Long For i = 2 To 11 If Cells(i , 1) = "2" Then If Cells(i, 2) = "Japan" Then Cells (i, 4) = Cells(i, 3) * 2 End If If Cells(i , 1) = "3" Then If Cells(i , 2) = "United States" Then Cells (i, 4) = Cells(i, 3) * 3 End If Next i End Sub 14. __________,__________ 次のコードは、Cドライブ下Documentsフォルダ内で、 ファイル名"total2023.xlsx"を"backup2023.xlsx"と名前を変えてファイルをコピーするマクロである。 以下の説明の空欄に入る適切な選択肢を解答しなさい。 Sub Exam1() FileCopy "C:\Documents\total2023.xlsx", "C:\Documents\backup\backup2023.xlsx" End Sub ・コピー先のフォルダにすでに同じ名前のファイルがある場合、上書きするかの確認メッセージは表示【 ① 】 ・コピー先に存在しないフォルダを指定するとエラーメッセージは表示【 ② 】 【 ① 】される。【 ② 】される。 【 ① 】される。【 ② 】されない。 【 ① 】されない。【 ② 】される。 【 ① 】されない。【 ② 】されない。 None 15. __________,__________ 以下のコードはオートフィルターで絞り込みをし、その後オートフィルターを解除するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Range("A1").AutoFilter 2, "Japan" Range(Range("D2"), Cells(Rows.count, 4).End(xlUp)) = "ASIA" Range("A1"). End Sub 16. __________,__________ 以下のコードを実行した時表示されるメッセージはである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Range("A1").ListObject.DataBodyRange.Copy Sheets("Sheet9").Range("A1") MsgBox Sheets("Sheet9").Range("C1") End Sub 17. __________,__________ 以下のコードは、1列目と2列目の値によって3列目に値を代入するマクロである。 このマクロの実行結果であるC列の合計行セルC12の値は であった。 Sub Exam1() Dim i As Long For i = 2 To 11 Select Case Cells(i, 1) Case “Japan” Select Case Cells(i, 2) Case “60” Cells(i, 3) = 900 Case “80” Cells(i, 3) = 1000 Case “100” Cells(i, 3) = 1100 End Select End Select Select Case Cells(i, 1) Case “United States” Select Case Cells(i, 2) Case “60” Cells(i, 3) = 1000 Case “80” Cells(i, 3) = 1100 Case “100” Cells(i, 3) = 1200 End Select End Select Next i End Sub 18. __________,__________ 以下のコードは、表の3列目に入力されている値を降順に並べ替えるマクロである。 空欄に入る適切な語句を答えなさい。 Sub Exam1() Range("A1").Sort :=Range("D1"), Order1:=xlAscending, Header:=xlYes End Sub 19. __________,__________ 以下のコードは、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 Plus = & And None 20. __________,__________ VBAの論理エラーに関する説明として間違っているものを、次の選択肢の中から2つ解答しなさい。 論理エラーはマクロ実行前に分かるエラーである。 論理エラーはエラー発生の状態で分けるとコンパイルエラーと実行時エラーに分けられる。 論理エラーは文法的なエラーではないが、論理的な矛盾によって発生するエラーである。 論理エラーはVBAの文法的に誤りがあるエラーである。 21. __________,__________ 以下のコードは、同じ行の2列目から4列目に入力されている値から日付を作成し、1列目に入力するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim i As Long For i = 2 To 11 Cells(i, 1).Value = (Cells(i, 2).Value, Cells(i, 3).Value, Cells(i, 4).Value) Next i End Sub 22. __________,__________ 以下のコードは、セル範囲B2からB10を"UN"を「完全一致」で検索し、 見つかったセルの左隣のセルに値を入力するマクロである。 空欄に入る適切な語句を入力しなさい。 Sub Exam1() Dim A As Range Set A = Range("B2:B10").Find(What:="UN", Lookat:= ) If Not A Is Nothing Then A.Offset(0, -1) = 500 End If End Sub 23. __________,__________ 以下のコードは、2列目で「Japan」を検索し、見つかったときは見つかったセルの3列目にに「ASIA」を代入し、見つからなかったときは「0」と表示するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim A As Range Set A = Range(“B:B”).Find(What:=“Japan”) If A Is Then MsgBox “0” Else A.Offset(0, 1) = “ASIA” End If End Sub 24. __________,__________ 以下のコードは、表の指定範囲の2列目を降順で並び替えるマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() With Sheets(“Sheet2”).Sort .SortFields.Clear .SortFields.Add2 Key:=Range(“B2”), Order:=xlDescending . Range(“A1:D10”) .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .Apply End With End Sub 25. __________,__________ 以下のコードは、セル内のデータが数値かどうかを判定し、数値であれば”True”、数値でなければ”False”をメッセージボックスに表示するマクロです。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim cellValue As Variant cellValue = Range(“A1”).Value If (cellValue) Then MsgBox “True” Else MsgBox “False” End If End Sub 26. __________,__________ 以下のコードは、セルA1を含む表の3列目を300より小さい条件で絞り込み、 その結果全体をSheet5のセルC1にコピーするマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Range("A1").AutoFilter 3, "<300" Range("A1"). .Copy Sheets("Sheet5").Range("C1") End Sub 27. __________,__________ 以下のコードは、セルA1を含む表データ部の1列目を"2"で絞り込み後行を削除しメッセージを表示するマクロである。 メッセージに表示された値は である。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() With Range("A1").ListObject.DataBodyRange .AutoFilter 1, "2" .EntireRow.Delete .AutoFilter 1 MsgBox .Rows.Count End With End Sub 28. __________,__________ 次のコードは、ユーザーが指定した語句の順番に基づいてデータを並べ替えるマクロである。 以下の空欄に入る適切な語句を解答しなさい。 Sub Exam1() With Sheets("Sheet1"). Sort .SortFields. Clear .SortFields.Add Key:=Range("B2"), :="Golf,Basketball,Tennis" .SetRange Range("A1").CurrentRegion .Header = xlYes .Apply End With End Sub 29. __________,__________ 以下のマクロを実行したとき、メッセージボックスに「アラタ」と表示された。 コード空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim N As String Range("C2").Phonetic.Text = "ニッタ" Range("C3").Phonetic.Text = "シンデン" Range("C4").Phonetic.Text = "アラタ" Range("A1").Sort Key1:=Range("C1"), Order1:=xlAscending, SortMethod:=, Header:=xlYes N = Range("C2").Phonetic.Text MsgBox N End Sub 30. __________,__________ 以下の選択肢の中で引数を使わないで値を共有する方法の説明として間違っているものを、次の中から1つ解答しなさい。 モジュールレベル変数は、宣言すると別のプロシージャでも値を共有することができる。 モジュールレベル変数の宣言は、宣言セクションで宣言する。 モジュールレベル変数は、宣言すると別のモジュールでも値を共有することができる。 複数のプロシージャで値を共有するには、引数の使用やモジュールレベル変数を使用することである。 None 31. __________,__________ 以下のコードは、表の4列目を検索しセルの位置を特定しセルの値をセルG2へ入力するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Range("G1") = WorksheetFunction.(Range("F1"), Range("A1:D10"), 4, False) End Sub 32. __________,__________ 以下のコードは、エラーが発生したら処理をError1:へジャンプさせるマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() On Goto Error1 Dim wb As Workbook Set wb = Workbooks.Open(“C:\path\file.xlsx”) wb.Sheets(“Sheet1”).Range(“A1”) = “No Err” MsgBox “OK” Exit Sub Error1: MsgBox "NG" End Sub 33. __________,__________ 以下のコードはオブジェクト変数を用いて、シートの追加やアクティブシートを指定するマクロである。 マクロ実行後のアクティブシートのシート名を解答しなさい。・マクロ実行後のアクティブシートのシート名は である。なおオブジェクト変数「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 34. __________,__________ 以下の選択肢はイミディエイトウィンドウに関する説明である。 説明として誤っているものを選択肢の中から1つ解答しなさい。 イミディエイトウィンドウは、プロパティや変数や等のマクロの状況を調べることができる。 イミディエイトウィンドウは、マクロの実行中のみ使うことができる。 イミディエイトウィンドウを表示するにはVBEの表示メニューの[イミディエイトウィンドウ]をクリックする。 イミディエイトウィンドウを表示するショートカットキーは、[Ctrl]+[G]キーを押下すると表示できる。 None 35. __________,__________ 以下のコードは、セル範囲A1:A5に入力された数値のうち最も小さい値をセルC1へ代入するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Range("C1") = WorksheetFunction. (Range("A1:A5")) End Sub 36. __________,__________ 以下のコードは、テーブル内の"Data2"列のデータ部分を選択するマクロである。 空欄に入る適切な語句を入力しなさい。 Sub Exam1() Range("table1 ").Select End Sub 37. __________,__________ 以下のコードはRangeと構造化参照で列を指定して、指定列の右側に列を挿入し、 挿入列の各セルに数式を代入するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Range("table1[[#Data], [Data2]]"). (0, 1).Formula = "= [@Data2]*1.5" End Sub 38. __________ 以下の文章は、イミディエイトウィンドウに関する説明です。 空欄に入る適切な語句を解答しなさい。 ・イミディエイトウィンドウでシート名”Sheets(1)”を削除する命令「Delete」を実行する場合、次のように入力します。 例) ① .delete 39. __________,__________ 変数の参照渡しと値渡しに関する説明として間違っているものを、次の中から解答しなさい。 引数の定義の ByVal、ByRef キーワードを省略すると、参照渡しになる。 引数の定義に "ByVal" をつけるときは参照渡しに、"ByRef" をつけると値渡しになる。 値渡しは変数に格納された値のコピーを渡す。 参照渡しは変数そのものを渡す。 None 40. __________,__________ 以下のコードは、エラーが発生した際にエラーの詳細を イミディエイトウィンドウに表示し、その後エラー情報をクリアにするマクロです。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() On Error Goto ErrorHandler Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(“Sheet2”) ws.Range(“B2”).Value = Application.WorksheetFunction.Sum(Range(“A1:A10”)) Exit Sub ErrorHandler: Debug.Print “Error: “ & Err.Description Err. End Sub