【ランダム順出題】Excel VBA スタンダード 模擬試験 問題バンクから40問出題 Excel VBA スタンダード 模擬問題 模擬試験 2025.09.292026.01.10 【試験の形式について】 この試験は、多数の問題の中から毎回自動でランダムに出題される形式をとっています。そのため、問題の出題順や選択肢の並び順は、受験のたびにシャッフルされます。 準備が整い次第、ボタンを押して試験を開始してください。 1. __________,__________ 次の文章は、イミディエイトウィンドウに関する説明です。 以下の空欄に入る適切な語句を解答しなさい。 イミディエイトウィンドウに range("C2").Value のように「上記空欄と同じ」を先頭につけて入力し、エンターキーを押すと、 プロパティの値や変数の値、関数の結果を調べてイミディエイトウィンドウに表示することができます。 例:Valueプロパティ 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. __________,__________ 次のコードは、テーブルのすべてをSheet11のセルB2へコピーするマクロである。 以下の空欄に入る適切な語句を解答しなさい。 Sub Exam1() Range("table1 ").Copy Sheets("Sheet11").Range("B2") End Sub 4. __________,__________ 日本語のデータを「ふりがな」を使って並べ替える際に使用する引数は に定数を指定する。 5. __________,__________ 次の文章はデバッグ作業の内 、マク口のコードを1行ずつ止めながら実行する説明である。 空欄に入る適切な語句を解答しなさい。 ・VBE内のマク口のコードを1行ずつ止めながら実行するのが です。 ・「上記空欄と同じ」の操作をコードの最初から行うには、実行したいプロシージャの中にカーソルを置き、 キーを押します。 ・実行すると、プロシージャのカーソル置いた箇所が黄色くハイライトされます。 これ以降、「上記空欄と同じ」キーを押すたびに、 1行ずつマクロが実行されます。 6. __________,__________ 以下のコードは、ブックの最後のシートのセルD5に"Country"と入力するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim ws As Set ws = ThisWorkbook.Sheets(ThisWorkbook.Sheets.count) ws.Range("D5").Value = "Country" End Sub 7. __________,__________ プロシージャの引数に関する説明として間違っているものを、次の中から1つ解答しなさい。 引数を引き受けるプロシージャはプロシージャ名の後に受け取る引数の名前を、括弧で囲い記述する。 プロシージャが引数を複数受け取る際は、引数を(,)カンマで区切って記述をする。 呼び出し元のプロシージャが引数を指定していない時や、引き渡す引数の数に違いがあってもエラーにはならない。 引数はどんな種類の値で受け取るかという型を指定することができる。 None 8. __________,__________ 次のコードは、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 9. __________,__________ VBAにおける配列の仕様について、正しいものを選択肢の中から1つ解答しなさい。 配列の下限数は、宣言時に「Dim A(1 To 5)」のように明示的に指定できる。 配列の下限数は、要素のデータ型によって決まる。 配列を「Dim A(5)」と宣言したとき、要素の下限数は「1」である。 配列の下限数は、常に「0」から始まる。 None 10. __________,__________ 指定したデータが「数値」として認識できるかどうかを判定するコードである。空欄に入る語句を解答しなさい。Dim result As result = IsNumeric("123") 11. __________,__________ 以下の文章はCallステートメントに関する説明である。説明が間違っているものを、次の選択肢の中から1つ解答しなさい。 Callステートメントを使用すると、呼び出されたプロシージャは常に最後まで実行され、元のプロシージャに戻ることはできない。 別のプロシージャを呼び出すとき、”Call”の記述を省略し、プロシージャ名を記述すれば呼び出すことができる。 別のプロシージャを呼び出し実行することができる。 Callステートメントは呼び出した別のプロシージャに、計算や処理で使う引数を渡すことができる。 None 12. __________,__________ 次のコードは宣言時には、配列の要素数の上限数が不明であり、指定の値を区切り文字で区切り配列に格納するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim B As Variant, i As Long B = (“Canada:France:Germany”, “:”) For i = 0 To (B) MsgBox B(i) Next i End Sub 13. __________,__________ 以下のコードはRangeと構造化参照で列を指定して、指定列の右側に列を挿入し、 挿入列の各セルに数式を代入するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Range("table1[[#Data], [Data2]]"). (0, 1).Formula = "= []*1.5" End Sub 14. __________,__________ 次のマクロは、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 15. __________,__________ 次のコードを実行後、メッセージに表示される値は である。 空欄に入る適切な語句を解答しなさい。 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 16. __________,__________ 次のコードは、ブックが保護されているかどうかを確認するマクロです。 以下の空欄に入る適切な語句を解答しなさい。 Sub Exam1() If ThisWorkbook. = True Then MsgBox “Protected” Else MsgBox “NG” End If End Sub 17. __________,__________ 次のコードはセル範囲を選択し、選択したの中から一つずつセルを取り出し、取り出したセルの値を変数に加算するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim A As Range,N As Long Range("B1").CurrentRegion.Select For Each A In N = N + A.Value Next A MsgBox N End Sub 18. __________,__________ ExcelおよびVBAにおける「シリアル値」の説明として、正しいものを選択しなさい。 エラーが発生した順番に割り振られる管理番号のことである。 テーブルの各行に自動的に割り振られるIDのことである。 日付を「1900年1月1日」を「1」としてカウントした数値のことである。 通信時にデータを1ビットずつ送るための順序番号のことである。 None 19. __________,__________ 以下のコードは、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 20. __________,__________ VBAにおける「マクロの最小実行単位」に関する記述として、適切なものを選択肢の中から1つ選びなさい。 モジュール プロジェクト プロシージャ ステートメント None 21. __________,__________ 以下の文書は、マクロの論理エラーを発生するタイミングに応じて2つに分類したものです。 空欄に入る適切なものを選択肢中なかから1つ解答しなさい。 ・論理エラー ∟【 ① 】 エラー・・・ マクロが実行される際、VBEはコード全体を「Excel が理解できる形式」に変換します。 この変換は①「上記空欄と同じ」と呼ばれています。この時点で論理的な誤りが検出されると、実行前にエラーが発生します。 ∟【 ② 】エラー・・・ 論理的な誤りが含まれていても、その部分が実際に実行されるまでエラーが発生しない場合があります。 ① 構文 , ② 記述 ① コンパイル , ② 実行時 ① 実行時 , ② コンパイル ① 記述 , ② 構文 None 22. __________,__________ 次のコードは、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 789 B Japan BJapan789 None 23. __________,__________ 次のコードはテーブル全体をコピーするマクロである。 空欄に入る適切な語句を解答しなさい。なおテーブルの名前は画像の左上に表示されています。 Sub Exam1() With Range(" [ ]") .Copy Sheets("Sheet12").Range("B2") End With End Sub 24. __________,__________ 以下のコードは別のプロシージャを呼び出すマクロである。 空欄に入る適切な語句を選択肢の中から解答しなさい。 【 ① 】 Exam() MsgBox "OK" End 【 ① 】 【 ② 】Numbers(a As Integer, b As Integer) As Integer Numbers = a + b End 【 ② 】 Sub Test() Call Exam Dim result As Integer result = Numbers(3, 7) MsgBox "3 + 7 の結果は " & result End Sub 【 ① 】Sub 【 ② 】Function 【 ① 】Function 【 ② 】Sub 【 ① 】Sub 【 ② 】Sub 【 ① 】Function 【 ② 】Function None 25. __________,__________ 次のコードは、セルA1を含む表を2列目が "Potato"と等しい条件で絞り込み、 絞り込んだ結果の値の合計をメッセージボックスに表示するマクロである。 空欄に入る適切な引数を解答しなさい。 Sub Exam1() Range("A1").AutoFilter 2, "Potato" MsgBox WorksheetFunction.Subtotal(, Range("A:A")) End Sub 26. __________,__________ 次のコードは、アクティブブックを"Documents"フォルダ内に「total_8.xlsm」として保存するマクロである。 なおファイル名の「8」は、実行時8月現在の月を表示したものである。 空欄に入る適切な解答を記入しなさい。 Sub Exam1() ActiveWorkbook. "C:\Documents¥" & "total_" & Month( ) & ".xlsm" End Sub 27. __________,__________ 次のコードは、指定された範囲内で特定の値を検索し、その値が見つかったセルの相対的な位置をメッセージボックスで表示するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim searchValue As String Dim result As Variant searchValue = “Baseball” result = Application. (searchValue, Range(“A2:A11”), 0) If IsNumeric(result) Then MsgBox searchValue & “ は “ & result & “ 番目にあります。” Else MsgBox searchValue & “ は見つかりませんでした。” End If End Sub 28. __________,__________ 次のコードは、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 29. __________,__________ VBAの論理エラーに関する説明として間違っているものを、次の選択肢の中から1つ解答しなさい。 論理エラーはVBAの文法的な誤りはないエラーである。 論理エラーはエラー発生の状態で分けるとコンパイルエラーと実行時エラーに分けられる。 論理エラーは文法的なエラーではないが、論理的な矛盾によって発生するエラーである。 論理エラーはマクロ実行前にだけ分かるエラーである。 None 30. __________,__________ 次のコードは、A列に入力されている文字列や数値、記号が混在している値の中からコードをカンマで区切り、数値のみをB列に代入するマクロである。 空欄に入る適切な語句を入力しなさい。 Sub Exam1() Dim i As Long, A As Variant, C As For i = 2 To 11 A = Split(Cells(i, 1), ”,”) For Each C In If IsNumeric(C) = True Then Cells(i, 2) = C End If Next C Next iEnd Sub 31. __________,__________ 次のコードは、2列目の値が1000より大きいときは3列目に”High”を入力し、 700より小さいときは3列目に”Low”を入力し、それ以外のときは”Medium”を入力するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim i As Long For i = 2 To 11 Case Cells(i, 2) Case Is > 1000 Cells(i, 3) = “High” Case < 700 Cells(i, 3) = “Low” Case Cells(i, 3) = “Medium” End Select Next i End Sub 32. __________,__________ 次のコードは指定のセルを含むテーブルを絞り込み、テーブル内の2列目のみコピーするマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() With Range("A1").ListObject .Range.AutoFilter 3, "800" . (2).Range.Copy Sheets("Sheet10").Range("B2") End With End Sub 33. __________,__________ 次のコードは、表のセル範囲を大文字小文字は区別せず並び替えるマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() With Sheets(“Sheet2”).Sort .SortFields.Clear .SortFields.Add2 Key:=Range(“B2”), Order:=xlDescending .SetRange Range(“A1:D11”) .Header = xlYes . = False .Apply End With End Sub 34. __________,__________ 次のコードは、Cドライブ下Documentsフォルダ内で、 ファイル名"total2023.xlsx"を"backup2023.xlsx"と名前を変えてファイルをコピーするマクロである。 以下の説明の空欄に入る適切な選択肢を解答しなさい。 Sub Exam1() FileCopy "C:\Documents\total2023.xlsx", "C:\Documents\backup\backup2023.xlsx" End Sub ・コピー先のフォルダにすでに同じ名前のファイルがある場合、上書きするかの確認メッセージは表示【 ① 】 ・コピー先に存在しないフォルダを指定するとエラーメッセージは表示【 ② 】 【 ① 】されない。【 ② 】されない。 【 ① 】される。【 ② 】される。 【 ① 】されない。【 ② 】される。 【 ① 】される。【 ② 】されない。 None 35. __________,__________ 以下の文章は主に2種類があるマクロのエラーの説明です。 空欄に入る適切な語句を選択肢らら解答しなさい。 ・ 【 ① 】エラー このエラーは構文エラーとも呼ばれます。VBAの文法や書式に誤りがあるときに発生します。 ・ 【 ② 】エラー このエラーは構文に誤りがなくても、マクロの論理に矛盾があるときに発生します。 ① 記述 , ② 論理 ① 実行時 , ②記述 ① 論理 , ② 記述 ① 構文 , ② 実行時 None 36. __________,__________ 次のコードは、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 37. __________,__________ 以下のコードは、表の2列目が “Canada “または"United Kingdom"の条件で絞り込むマクロである。 空欄に入る語句を解答しなさい。 Sub Exam1() Range( “A1 “).AutoFilter 2, “Canada “, , “United Kingdom" End Sub 38. __________,__________ 次のコードは、指定のセル範囲内で「Banana」という値を検索し、そのセルをコピーしてセルの背景を黄色にするマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim N As Range Set N = Range("B2:B10").( :=“Banana”, Lookat:=xlWhole) If Not N Is Nothing Then N.Copy Range("C2") Range("C2").Interior.Color = vbYellow End If End Sub 39. __________,__________ 変数の参照渡しと値渡しに関する説明として間違っているものを、次の中から解答しなさい。 引数の定義に "ByVal" をつけるときは参照渡しに、"ByRef" をつけると値渡しになる。 値渡しは変数に格納された値のコピーを渡す。 引数の定義の ByVal、ByRef キーワードを省略すると、参照渡しになる。 参照渡しは変数そのものを渡す。 None 40. __________,__________ 次のコードは、 セル範囲A2:A10に入力されている文字列から"-"を除去した結果を2列目に入力するマクロである。 空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim i As Long For i = 2 To 10 Cells(i, 2) = (Cells(i, 1), "-", "") Next i End Sub