【ランダム順出題】Excel VBA スタンダード 模擬試験 問題バンクから40問出題 Excel VBA スタンダード 模擬問題 模擬試験 2025.09.292026.01.10 【試験の形式について】 この試験は、多数の問題の中から毎回自動でランダムに出題される形式をとっています。そのため、問題の出題順や選択肢の並び順は、受験のたびにシャッフルされます。 準備が整い次第、ボタンを押して試験を開始してください。 1. __________,__________ 次のコードはセルを検索し見つかった場合は、セルのアドレスを表示するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim N As Range Set N = Range("A2:D10").Find(What:="Italy", :=xlWhole) If Not N Is Nothing Then MsgBox N.Address End If End Sub 2. __________,__________ 次の選択肢は、条件を満たした際に処理を実行するマクロの説明である。 適当な選択肢を解答しなさい。 Sub Exam1() Dim i As Long For i = 2 To 10 If Cells(i, 1) = "Japan" Then Cells(i, 2) = "ASIA" ElseIf Cells(i, 1) = "United States" Then Cells(i, 2) = "US" ElseIf Cells(i, 1) = "United Kingdom" Then Cells(i, 2) = "UK" Else Cells(i, 2) = "Other" End If Next i End Sub 上記マクロはAND、ORいずれの条件も満たさない際のマクロの記述である。 上記マクロはいずれかの条件を満たすOR条件のマクロの記述である。 上記マクロはすべての条件を満たすAND条件のマクロの記述である。 None 3. __________,__________ 次のコードは、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 4. __________,__________ 次のコードは、ブックにNOW関数を利用し今日の日付と時刻で 「2024_08_04_0610.xlsm」のような形式のファイル名で保存するマクロである。 空欄に入る最も適切な語句の組み合わせを選択肢より解答しなさい。 Sub Exam1() ThisWorkbook.SaveAs "C:\Backup\" &【 ① 】 (Now, "【 ② 】") & ".xlsm" End Sub 【 ① 】 DateValue【 ② 】 yyyy_mm_dd_hhnn 【 ① 】 Format 【 ② 】yyyy_mm_dd_hhnn 【 ① 】Text【 ② 】 yyyy_mm_dd_hhnn 【 ① 】Format 【 ② 】yyyymmddhhnn None 5. __________,__________ 次のコードは、B列で"Japan"を探し、見つかったセルを含む行全体を削除するマクロである。 以下の空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim A As Range Set A = Range(“B:B”).Find(What:=“Japan”) If A Is Nothing Then MsgBox “見つかりませんでした” Else A..Delete End If End Sub 6. __________,__________ 次のコードは、2列目に入力されている日付から、翌月の月末日を3列目に代入するマクロである。 以下の空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim i As Long For i = 2 To 6 Cells(i, 3) = WorksheetFunction. (Cells(i, 2), ) Next i End Sub 7. __________,__________ 次のコードは、B列に入力されている数値のうち 「5番目に小さい数値」を指定のセルに代入するマクロである。 以下の空欄に入る適切な語句を解答しなさい。 Sub Exam1() Range("E3") = WorksheetFunction. (Range("B1:B20"), 5) End Sub 8. __________,__________ 次のコードを実行後、メッセージに表示される値は である。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim N As Long With Range("A1").ListObject .DataBodyRange.AutoFilter 3, "800" .ListColumns(1).DataBodyRange.Value = "―" .DataBodyRange.AutoFilter 3 End With N = WorksheetFunction.SumIf(Range("A1:A10"), "1", Range("C1:C10")) MsgBox N End Sub 9. __________,__________ 次のコードは、表の指定範囲を2列目を基準に上下に並び変えるマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() With Sheets(“Sheet2”).Sort .SortFields.Clear .SortFields.Add2 Key:=Range(“B2”), Order:=xlDescending .SetRange Range(“A1:C11”) .Header = xlYes .MatchCase = False . = xlTopToBottom .Apply End With End Sub 10. __________,__________ 次のコードは表内を検索するマクロである。実行すると”Soccer”と表示された。 空欄に入る適切な語句を入力しなさい。 Sub Exam1() Dim A As Range Set A = Range("A2:A10").Find(What:="8", Lookat:= xlWhole) MsgBox A. Offset End Sub 11. __________,__________ VBAの基本的な構成に関する説明として、最も適切なものを1つ選択しなさい。 VBAのコードが記述されたモジュールが、マクロの最小実行単位である。 VBAのコードはステートメントの集まりであり、ステートメントがマクロの最小実行単位となる。 VBAではFunctionプロシージャのみがマクロとして実行できる。 VBAのプロシージャは、マクロの最小実行単位である。 None 12. __________,__________ 次のコードは、全ての開いているブックの中に"VBA"という名前のシートがあるか確認するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim wb As Workbook Dim ws As Worksheet For Each wb In For Each ws In wb.Sheets If ws.Name = “VBA” Then MsgBox “OK” Exit Sub End If Next ws Next wb MsgBox “Nothing” End Sub 13. __________,__________ 次のコードは、セルA1を含む表を指定条件で絞り込むマクロである。 絞込み後4列目にREDと入力された同じ行の1列目「Data1」の合計値は である。 上記空欄に入る適切な値を解答しなさい。 Sub Exam1() Range("A1").AutoFilter 2, "Apple" Range (Range ("D2"), Cells (Rows.Count, 4).End(xlUp)) = "RED" End Sub 14. __________,__________ 次の文章はデバッグ作業の内 、マク口のコードを1行ずつ止めながら実行する説明である。 空欄に入る適切な語句を解答しなさい。 ・VBE内のマク口のコードを1行ずつ止めながら実行するのが です。 ・「上記空欄と同じ」の操作をコードの最初から行うには、実行したいプロシージャの中にカーソルを置き、 キーを押します。 ・実行すると、プロシージャのカーソル置いた箇所が黄色くハイライトされます。 これ以降、「上記空欄と同じ」キーを押すたびに、 1行ずつマクロが実行されます。 15. __________,__________ 次のコードは、セル範囲A1:A10の中から「RED」という文字を含むセルを検索するマクロである。 空欄 に入る適切な語句を解答しなさい。 Sub Exam1() Dim N As Range Set N = Range(”A1:A10”).)(What:=(”RED”, LookAt:=) If Not N Is Nothing Then MsgBox N.Address End IfEnd Sub 16. __________,__________ 次のコードは、セルA1を含む表に対して3列目が"100以上かつ、300以下"の条件で絞り込むマクロである。空欄に入る語句を解答しなさい。 Sub Exam1() Range("A1"). 3, ">=100", , "<=300" End Sub 17. __________,__________ 次のコードは、指定された範囲内の"Banana"の数をカウントし個数をメッセージボックスに表示するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim A As Long A = WorksheetFunction. (Range(“C1:C15”), “Banana”) If A = 0 Then MsgBox “0” Else MsgBox “Banana‐” & A End If End Sub 18. __________,__________ 以下のコードは、セル範囲A1:A5に入力された数値のうち最も小さい値をセルC1へ代入するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Range("C1") = WorksheetFunction. (Range("A1:A5")) End Sub 19. __________,__________ 以下のコードは、実行すると値を表示するマクロである。 実行後、表示された値は である。 空欄に入る値を解答しなさい。 Sub Exam1() Dim A As Range Set A = Range(“B:B”). Find (What:=”United States”) If A Is Nothing Then MsgBox “0” Else A.Offset(0, 1) = A.Offset(0, 1) *0.5 MsgBox A.Offset(, 1).Value End If End Sub 20. __________,__________ VBAの論理エラーに関する説明として間違っているものを、次の選択肢の中から1つ解答しなさい。 論理エラーはエラー発生の状態で分けるとコンパイルエラーと実行時エラーに分けられる。 論理エラーはマクロ実行前にだけ分かるエラーである。 論理エラーはVBAの文法的な誤りはないエラーである。 論理エラーは文法的なエラーではないが、論理的な矛盾によって発生するエラーである。 None 21. __________,__________ 次のコードは配列に格納した値をメッセージで表示するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim B As Variant Dim i As Long B = Split(“baseball:football:basketball”, “:”) For i = (B) To UBound(B) MsgBox B(i) Next i End Sub 22. __________,__________ 次のコードを実行したとき、メッセージボックスに表示される値として正しいものを解答しなさい。Sub Exam1() Dim A As Integer A = 5 Call Exam2(A) MsgBox AEnd SubSub Exam2(X As Integer) X = X * 3End Sub 15 0 コンパイルエラーが発生する。 5 None 23. __________,__________ 次のマクロは、Cドライブの「Temp」フォルダにあるファイルを、同じフォルダ内へ別名でコピーするものである。 コピー先となる「Backup.xlsx」が既に存在している状態でこのマクロを実行したとき、どのような結果になるか適切なものを選択しなさい。Sub Exam1() Dim A As String Dim N As String A = ”C:\Temp\Data.xlsx” N = ”C:\Temp\Backup.xlsx” FileCopy A, NEnd Sub エラーメッセージが表示され、マクロの実行が中断される。 コピーは行われず、既存のファイルが保護されたままマクロが終了する。 「既にファイルが存在します。上書きしますか?」という確認メッセージが表示される。 確認メッセージは表示されず、既存のファイルが上書きされてマクロが終了する。 None 24. __________,__________ 次のコードは、ブックの保存状態を調べ、調べた結果に応じたメッセージを表示するマクロです。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() ThisWorkbook.SaveAs “book.xlsm” If ThisWorkbook. = True Then MsgBox “Changed” Else MsgBox “No Changed” End IfEnd Sub 25. __________,__________ 以下のコードは、表の3列目に入力されている値を昇順に並べ替えるマクロである。 空欄に入る適切な語句を答えなさい。 Sub Exam1() Range("A1").Sort :=Range("D1"), :=xlAscending, :=xlYes End Sub 26. __________,__________ 次のコードは、数値を4桁の文字列にし更に”SXXXX”の形式に整えるコードである。 なお各桁に値がない時も”0”を表示するように設定をした。 空欄に入る適切な語句を入力しなさい。 Sub Exam1() Dim i As Long For i = 2 to 5 Cells(i, 2) = ”S”& (i, " ") Next i MsgBox Range(”B4”) End Sub 27. __________,__________ 以下のコードは、指定したセル範囲から値をひとつずつ取り出し、変数に格納するマクロである。 実行後メッセージに表示された値は である。 空欄に入る適切な値を解答しなさい。 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 28. __________,__________ VBAにおける「マクロの最小実行単位」に関する記述として、適切なものを選択肢の中から1つ選びなさい。 プロシージャ ステートメント プロジェクト モジュール None 29. __________,__________ 次のコードは、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 30. __________,__________ 以下のコードはオートフィルターで絞り込みをし、その後オートフィルターを解除するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Range("A1").AutoFilter 2, "Japan" Range(Range("D2"), Cells(Rows.count, 4).End(xlUp)) = "ASIA" Range("A1"). End Sub 31. __________,__________ 以下のコードは、セル内のデータが数値かどうかを判定し、数値であれば”True”、数値でなければ”False”をメッセージボックスに表示するマクロです。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim cellValue As Variant cellValue = Range(“A1”).Value If (cellValue) Then MsgBox “True” Else MsgBox “False” End If End Sub 32. __________,__________ 次のコードを実行した時に表示されるメッセージは である。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() With Range("A1").ListObject.ListRows (2).Range.Select MsgBox Selection.Row End With End Sub 33. __________,__________ 次のコードは、オートフィルターを実行し条件にあった箇所の文字列にアンダーラインつけるマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() With ActiveSheet.ListObjects(2) .Range.AutoFilter 2, "Spinach" .ListColumns(3).DataBodyRange. .Underline = True End With End Sub 34. __________,__________ 次のコードは、 セル範囲A2:A10に入力されている文字列データから 「- 」を除去した結果を2列目に入力するマクロである。 ”” (空欄文字列なし)を入れる位置は【 ① 】と【 ② 】どこが適切か選択肢から解答しなさい。 Sub Exam1() Dim i As Long For i = 2 To 10 Cells(i, 2) = Replace(Cells(i, 1), 【 ① 】 , 【 ② 】) Next i End Sub 【 ① 】 【 ① 】と【 ② 】 【 ② 】 【 ① 】と【 ② 】どちらもあてはまらない。 None 35. __________,__________ 次のコードは実行したとき、メッセージボックスには6が表示されるマクロである。 以下の空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim N ( ) As Long ReDim N( ) N(0) = 0 N(1) = 1 N(2) = 2 N(3) = 3 MsgBox N(0) + N(1) + N(2) + N(3) End Sub 36. __________,__________ 次のコードは、1列目に入力されている"Japan"という文字列が入力されているセルの個数をカウントし、 メッセージボックスに個数を表示するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim i As Long, count As Long For i = 2 To 11 If Cells(i, 1) = "Japan" Then count = count + End If Next i MsgBox count End Sub 37. __________,__________ 次のコードは、Cドライブ下のDocumentsフォルダ内で、ファイル名"total2023.xlsx "を"backup2023.xlsx"と名前を変えてファイルをコピーするマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() FileCopy "C:\Documents¥total2023.xlsx" "C:\Documents¥backup2023.xlsx" End Sub 38. __________,__________ 以下のコードは、セル範囲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 39. __________,__________ 以下のコードを実行したとき、メッセージボックスに表示される値はである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() With Sheets(“Sheet1”). Sort .SortFields. Clear .SortFields.Add Key:=Range(“D2”), CustomOrder:=“ASIA,EU,NorthAmerica,Other” .SortFields.Add Key:=Range(“C2”), Order:=xlDescending .SetRange Range(“A1:D10”) .Header = xlYes .Apply End With MsgBox Range(“C3”).Value End Sub 40. __________,__________ データ内の不要な文字を除去する際に使用する最適な関数はどれか。 次の選択肢の中から1つ解答しなさい。 Resize Place Replace StrConv None