【カテゴリー別】Access VBA スタンダード 模擬問題 コンポーネント ファイルの操作 OLE VBA高速化 Access VBA スタンダード 模擬問題 模擬問題 2026.07.152026.07.16 こちらはカテゴリー別の模擬問題です。 合計58問が、システムに登録した順番に1問1答形式で出題されます。 タイマー機能やランダム機能はありません。 準備が整い次第、ボタンを押して試験を開始してください。 1. 外部オブジェクトを参照する「事前バインディング」と「実行時バインディング(遅延バインディング)」の違いに関する説明として最も適切ものはどれか。以下の選択肢より1つ解答しなさい。 実行時バインディングは、利用したいライブラリの固有オブジェクト型で変数を宣言する。 事前バインディングは参照設定で型をあらかじめ選択するため実行が速く、自動メンバ表示やコンパイル時のエラーチェックが使える。 事前バインディングはObject型で宣言し、実行時に型が解釈されるため実行速度が速い。 実行時バインディングは参照設定が必要で、自動メンバ表示やコンパイル時のエラーチェックが使える。 None 2. 次のコードは、事前バインディングでExcelアプリケーションのオブジェクトを生成するものである。以下の空欄に入る適切な語句を解答しなさい。Sub Exam1() Dim obt As Excel.Application Set obt = Excel.Application Set obt = Nothing MsgBox "完了"End Sub 3. 次のコードは、実行時バインディングでFileSystemObjectのオブジェクトを生成するものである。以下の空欄に入る適切な語句を解答しなさい。Sub Exam1() Dim fso As Set fso = ("Scripting.FileSystemObject") Set fso = Nothing MsgBox "完了"End Sub 4. 次のコードは、使用し終えたオブジェクト変数の参照を明示的に解放するものである。空欄に入る語句を解答しなさい。Sub Exam1() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Set fso = MsgBox "完了"End Sub 5. 次のコードは、カレントデータベースが保存されているフォルダーのパスを取得し、取得したパスをメッセージで表示するものである。以下の空欄に入る適切な語句を解答しなさい。Sub Exam1() Dim pt As String pt = CurrentProject. MsgBox pt End Sub 6. 次のコードは、カレントデータベースのファイル名を取得しメッセージで表示するものである。以下の空欄に入る適切な語句を解答しなさい。Sub Exam1() Dim dbs As String dbs = CurrentProject. MsgBox dbsEnd Sub 7. 次のコードを実行したとき、メッセージボックスに表示される内容として最も適切なものを1つ選びなさい。Sub Exam1() MsgBox CurrentDb.NameEnd Sub カレントデータベース内の先頭のテーブル名 カレントデータベースのファイル名のみ(例:1.accdb) カレントデータベースが保存されているフォルダーのパスのみ(例:C:¥data) カレントデータベースの完全なパスとファイル名(例:C:¥data¥1.accdb) None 8. 次のコードは、1行で参照設定「Microsoft Scripting Runtime」を行いFileSystemObjectを事前バインディングで生成するものである。空欄に入る語句を解答しなさい。Sub Exam1() Dim fso FileSystemObject If fso.FileExists("C:¥Data¥Sample.txt") Then MsgBox "あり"End Sub 9. 次のコードは、FileSystemObjectを実行時バインディングで生成するものである。以下の空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim fso As Object Set fso = (".FileSystemObject) Set fso = Nothing MsgBox "完了"End Sub 10. 次のコードは、ファイルをコピーするものである。以下の空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") fso. "C:¥Data¥a.txt", "C:¥Data¥b.txt" Set fso = Nothing MsgBox "完了"End Sub 11. 次のコードは、「C:¥Data」フォルダを「C:¥Data2」という名前でコピーし、続けて「C:¥Data¥data1.txt」のファイルを「C:¥Data2」の中へファイル名を変え移動する処理である。以下の空欄に入る適切な語句を解答しなさい。Sub Exam1() Dim fso As New FileSystemObject fso. "C:¥Data", "C:¥Data2" fso. "C:¥Data¥data1.txt", "C:¥Data2¥data2.txt" Set fso = Nothing MsgBox "完了"End Sub 12. 次のコードは、 パスを指定し 「C:¥Data¥data1.txt」ファイルを削除したあと、「C:¥data」フォルダ自体を削除する処理である。以下の空欄に入る適切な語句を解答しなさい。Sub Exam1() Dim fso As New FileSystemObject fso. "C:¥Data¥data1.txt" fso. "C:¥Data" Set fso = Nothing MsgBox "完了"End Sub 13. 次のコードは、新しいフォルダーを作成するものである。空欄に入る語句を解答しなさい。 Sub Exam1() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") fso."C:¥NewFolder" Set fso = Nothing MsgBox "完了"End Sub 14. 次のコードは、「C:¥Data」フォルダが存在するかどうかを調べ、存在する場合はさらにその中の「data1.txt」が存在するかどうかを調べて、結果を表示する処理である。以下の空欄に入る適切な語句を解答しなさい。Sub Exam1() Dim fso As New FileSystemObject If fso.("C:¥Data") Then If fso.("C:¥test¥data1.txt") Then Debug.Print "ファイルがあります" End If End If Set fso = Nothing MsgBox "完了"End Sub 15. 次のコードは、指定したドライブの情報を扱うDriveオブジェクトを取得しメッセージで表示するものである。以下の空欄に入る適切な語句を解答しなさい。Sub Exam1() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim drv As Object Set drv = fso.("C:") MsgBox drv Set fso = Nothing Set drv = NothingEnd Sub 16. 次のコードは、パソコンで利用できるすべてのドライブを順に調べ、使用できる状態のドライブについてのみ、そのパスを表示する処理である。空欄に入る語句を、上から順に解答しなさい。Sub Exam1() Dim fso As New FileSystemObject Dim drv As Drive For Each drv In fso. If drv. Then Debug.Print drv.Path End If Next Set fso = Nothing Set drv = Nothing MsgBox "完了"End Sub 17. 次のコードは、Cドライブの総容量と、「C:¥Data」フォルダに含まれるファイルやサブフォルダの合計サイズを、それぞれバイト単位で表示する処理である。以下の空欄に入る適切な語句を解答しなさい。Sub Exam1() Dim fso As New FileSystemObject Dim drv As Drive Dim fld As Folder Set drv = fso.GetDrive("C:") Debug.Print drv. Set fld = fso.GetFolder("C:¥Data") Debug.Print fld. Set fso = Nothing Set drv = Nothing Set fld = Nothing MsgBox "完了"End Sub 18. 次のコードは、ドライブの空き容量を取得するものである。以下の空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim drv As Object Set drv = fso.GetDrive("C:") MsgBox drv. Set fso = Nothing Set drv = NothingEnd Sub 19. 次のコードは、指定したフォルダーを扱うFolderオブジェクトを取得するものである。以下の空欄に入る適切な語句を解答しなさい。Sub Exam1() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim fld As Object Set fld = fso.("C:¥Data") MsgBox fld Set fso = Nothing Set fld = NothingEnd Sub 20. DriveTypeプロパティが返す数値と、その数値が表すドライブの種類の組み合わせとして正しいものはどれか。以下の選択肢より1つ解答しなさい。 0 − 不明 5 − ネットワークドライブ 3 − CD-ROM 1 − ハードディスク None 21. 次のコードは、フォルダー内のすべてのファイルを1つずつ処理するものである。以下の空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim fld As Object, f As Object Set fld = fso.GetFolder("C:¥Data") For Each f In fld. Debug.Print f.Name Next f Set fso = Nothing Set fld = Nothing Set f = Nothing MsgBox "完了"End Sub 22. 次のコードは、「C:¥test」フォルダの中にあるすべてのサブフォルダについて、そのサブフォル名と最後に更新された日時を順に表示する処理である。空欄に入る語句を解答しなさい。Sub Exam1() Dim fso As New FileSystemObject Dim fld As Folder Dim sub_fld As Folder Set fld = fso.GetFolder("C:¥Data") For Each sub_fld In fld. Debug.Print sub_fld.Name, sub_fld. Next Set fso = Nothing Set fld = Nothing Set sub_fld = Nothing MsgBox "完了"End Sub 23. 次のコードは、指定したファイルを扱うFileオブジェクトを取得するものである。以下の空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim fl As Object Set fl = fso.("C:¥Data¥a.txt") MsgBox fl Set fso = Nothing Set fl = NothingEnd Sub 24. 次のコードは、「C:¥Data¥a.txt」というテキストファイルについて、作成された日時とファイルの種類を表示する処理である。以下の空欄に入る適切な語句を解答しなさい。Sub Exam1() Dim fso As New FileSystemObject Dim fl As File Set fl = fso.GetFile("C:¥Data¥a.txt") Debug.Print fl. Debug.Print fl. Set fso = Nothing Set fil = Nothing MsgBox "完了"End Sub 25. 次のコードは、取得したFileオブジェクトをコピーするものである。 以下の空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim fl As Object Set fl = fso.GetFile(C:¥Data¥a.txt") fl. "C:¥Data2¥a.txt" Set fso = Nothing Set fl = Nothing MsgBox "完了"End Sub 26. 次のコードは、取得したフォルダをそのオブジェクト自身の操作で削除、続けて取得したフォルダを別の場所のフォルダへ移動する処理である。以下の空欄に入る適切な語句を解答しなさい。Sub Exam1() Dim fso As New FileSystemObject Dim fld As Folder Set fld = fso.GetFolder("C:¥Data¥old") fld. Set fld = fso.GetFolder("C:¥Data¥work") fld. "C:¥backup¥work" Set fso = Nothing Set fld = Nothing MsgBox "完了"End Sub 27. 次のコードは、「C:¥Data¥a.txt」の属性を表示したうえで、そのファイル自身から直接テキストの読み取り用で開き、1行目を読み取って表示する処理である。以下の空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim fso As New FileSystemObject Dim fl As File Dim ts As TextStream Set fl = fso.GetFile("C:¥Data¥a.txt") Debug.Print fl. Set ts = fl.(ForReading) Debug.Print ts.ReadLine ts.Close Set fso = Nothing Set fl = Nothing Set ts = Nothing MsgBox "完了"End Sub 28. 次のコードは、テキストファイルからTextStreamオブジェクトを取得し上書きするものである。以下の空欄に入る適切な語句を解答しなさい。 Dim ts As Object Set ts = fso. ("C:¥Data¥Data1.txt", ) ts.Write "VBA" ts.Close Set fso = Nothing Set ts = Nothing MsgBox "完了"End Sub 29. 次のコードは、テキストファイルから入出力モードを指定してTextStreamオブジェクトを取得するものである。以下の空欄に入る適切な語句を解答しなさい。Sub Exam1() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim ts As Object Set ts = fso.("C:¥Data¥a.txt", ForReading) MsgBox ts.ReadAll ts.Close Set fso = Nothing Set ts = NothingMsgBox "完了"End Sub 30. 次のコードは、カレントデータベースと同じフォルダに「a.txt」というテキストファイルを作成し、1行分の文字を書き込む処理である。なお、実行前の時点で、同じ場所に「a.txt」がすでに存在しているものとする。このコードを実行したときの結果として適切ものはどれか。以下の選択肢より1つ解答しなさい。Sub Exam1() Dim fso As New FileSystemObject Dim ts As TextStream Dim strpath As String strpath = CurrentProject.Path & "¥a.txt" Set ts = fso.CreateTextFile(strpath, False) ts.WriteLine "VBA" ts.Close Set fso = Nothing Set ts = Nothing MsgBox "完了"End Sub エラーも書き込みも起こらず、そのまま正常終了する。 既存の「a.txt」の末尾に「VBA」が追加で書き込まれる。 実行時エラーが発生し、既存の「a.txt」は変更されない。 既存の「a.txt」が破棄され、「VBA」だけが書き込まれた新しいファイルに置き換わる。 None 31. 次のコードは、TextStreamオブジェクトを読み取り専用モードで開くものである。以下の空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim ts As Object Set ts = fso.OpenTextFile("C:¥Data¥a.txt", ) MsgBox ts.ReadAll ts.Close Set fso = Nothing Set ts = Nothing MsgBox "完了"End Sub 32. 次のコードは、末尾追記でTextStreamオブジェクトを開くものである。以下の空欄に入る適切な語句を解答しなさい。Sub Exam1() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim ts As Object Set ts = fso.OpenTextFile("C:¥Data¥a.txt", ) ts.Write "ABC" ts.Close Set fso = Nothing Set ts = Nothing MsgBox "完了"End Sub 33. 次のコードは、カレントデータベースと同じフォルダにある「a.txt」TextStreamオブジェクトを開いて文字を書き込み、そのあと同じファイルを読み取って内容を表示する処理である。なお、実行前の「a.txt」であるTextStreamオブジェクトには「123」という1行だけが書かれているものとする。このコードを実行したとき、最初に表示されるメッセージボックスの内容として選択肢の中から適切なものを1つ解答しなさい。Sub Exam1() Dim fso As New FileSystemObject Dim ts As TextStream Dim strpath As String strpath = CurrentProject.Path & "¥a.txt" Set ts = fso.OpenTextFile(strpath, ForWriting) ts.Write "456" ts.Close Set ts = fso.OpenTextFile(strpath, ForReading) MsgBox ts.ReadAll ts.Close Set fso = Nothing Set ts = Nothing MsgBox "完了"End Sub 456 123 と 456 が2行に分かれて表示される。 123456 123 None 34. 次のコードは、TextStreamオブジェクトを1行ずつ最後まで読み取り、イミディエイトウィンドウに出力する処理である。空欄に当てはまる最も適切な語句はどれか。以下の選択肢より1つ解答しなさい。Sub Exam1() Dim fso As New FileSystemObject Dim ts As TextStream Dim strpath As String strpath = CurrentProject.Path & "¥a.txt" Set ts = fso.OpenTextFile(strpath, ForReading) Do Until ts.【 ① 】 Debug.Print ts.ReadLine Loop ts.Close Set fso = Nothing Set ts = Nothing MsgBox "完了"End Sub Line Column AtEndOfLine AtEndOfStream None 35. 次のコードは、TextStreamオブジェクトの1行目を読み飛ばしたうえで、2行目の先頭から3文字だけを取り出して表示する処理である。空欄に当てはまる最も適切な組み合わせはどれか。以下の選択肢より1つ解答しなさい。Sub Exam1() Dim fso As New FileSystemObject Dim ts As TextStream Dim strpath As String strpath = CurrentProject.Path & "¥a.txt" Set ts = fso.OpenTextFile(strpath, ForReading) ts.【 ① 】 MsgBox ts.【 ② 】(3) ts.Close Set fso = Nothing Set ts = Nothing MsgBox "完了"End Sub 【 ① 】−ReadLine 【 ② 】−ReadAll 【 ① 】−SkipLine 【 ② 】−Read 【 ① 】−SkipLine 【 ② 】−ReadAll 【 ① 】−Skip 【 ② 】−ReadLine None 36. 次のコードは、TextStreamオブジェクトに「Access」を書き込み、続けて改行文字を1つ書き込んでから、「VBA」を改行付きで書き込み、最後にTextStreamオブジェクを閉じる処理である。空欄に当てはまる最も適切な組み合わせはどれか。以下の選択肢より1つ解答しなさい。Sub Exam1() Dim fso As New FileSystemObject Dim ts As TextStream Dim strpath As String strpath = CurrentProject.Path & "¥a.txt" Set ts = fso.CreateTextFile(strpath, True) ts.【 ① 】 "Access" ts.WriteBlankLines 1 ts.WriteLine "VBA" ts.【 ② 】 Set fso = Nothing Set ts = Nothing MsgBox "完了"End Sub 【 ① 】−Write 【 ② 】−Close 【 ① 】−Write 【 ② 】−Delete 【 ① 】−WriteLine 【 ② 】−Close 【 ① 】−WriteBlankLines 【 ② 】−Close None 37. 次のコードは、TextStreamオブジェクトに、改行文字付きで1行書き込むものである。以下の空欄に入る適切な語句を解答しなさい。Sub Exam1() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim ts As Object Set ts = fso.CreateTextFile("C:¥Data¥new.txt") ts. "1行目のデータ" ts.Close Set fso = Nothing Set ts = NothingMsgBox "完了"End Sub 38. 次のコードは、開いたTextStreamオブジェクトから1行分を読み取るものである。以下の空欄に入る適切な語句を解答しなさい。 Sub Exam1() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim ts As Object, s As String Set ts = fso.OpenTextFile("C:¥Data¥a.txt", ForReading) s = ts. ts.Close MsgBox s Set fso = Nothing Set ts = NothingEnd Sub 39. 次のコードは、ファイルを選択するダイアログを表示するためにオブジェクトを取得するものである。以下の空欄に入る適切な語句を解答しなさい。Sub Exam1() Dim fld As Set fld = Application.*上記空欄と同じ(msoFileDialogFilePicker) Set fld = Nothing MsgBox "完了"End Sub 40. 次のコードで、FileDialogオブジェクトについてユーザーが以下のファイルを選択して[OK]をクリックしたときのShowメソッドの戻り値と分岐として、選択肢の中から適切なものを1つ解答しなさい。Sub Exam1() Dim fld As FileDialog Set fld = Application.FileDialog(msoFileDialogFilePicker) If fld.Show = -1 Then MsgBox fld.SelectedItems(1) Set fld = NothingEnd Sub Showは、選択して実行すると0、キャンセルすると-1を返す。 Showは、選択されたファイルのパス文字列を返す。 Showは、キャンセル以外を選択して実行すると-1(True)、キャンセルすると0(False)を返す。 Showは、選択されたファイルの個数を返す。 None 41. 次のコードは、ファイルを選択するダイアログボックスについて、開いたときに最初に選ばれているファイルの種類を、登録した順番の番号で設定する処理である。空欄に当てはまる最も適切な組み合わせはどれか。以下の選択肢より1つ解答しなさい。Sub Exam1() Dim fld As FileDialog Set fld = Application.FileDialog(msoFileDialogFilePicker) fld .Title = "ファイルの選択" fld.ButtonName = "取り込む" fld.InitialFileName = CurrentProject.Path fld .Filters.Clear fld.Filters.Add "テキストファイル", "*.txt", 1 fld.Filters.Add "すべてのファイル", "*.*", 2 fld.【 ① 】 = 2 If fld.Show Then Debug.Print fld.SelectedItems(1) End If Set fld = Nothing MsgBox "完了"End Sub Filters Title ButtonName FilterIndex None 42. 次のコードは、ファイルを選択するダイアログボックスに「ファイルを選択してください」というタイトルを表示し、複数のファイルを同時に選択できるようにしたうえで、選択されたすべてのファイルのパスを表示する処理である。以下の空欄に入る適切な語句を解答しなさい。Sub Exam1() Dim fld As FileDialog Dim N As Variant Set fld = Application.FileDialog(msoFileDialogFilePicker) fld. = "ファイルを選択してください" fld. = True If fld.Show Then For Each N In dlg.SelectedItems Debug.Print N Next End If Set fld = Nothing MsgBox "完了"End Sub 43. 次のコードは、ファイルを選択するダイアログボックスを、ファイルの詳細情報を並べた形式で表示する処理である。空欄に当てはまる最も適切な組み合わせはどれか。以下の選択肢より1つ解答しなさい。Sub Exam1() Dim fld As FileDialog Set fld = Application.FileDialog(msoFileDialogFilePicker) fld.Title = "ファイルの選択" fld.【 ① 】 = 【 ② 】 If fld.Show Then Debug.Print fld.SelectedItems(1) End If Set fld = Nothing MsgBox "完了"End Sub 【 ① 】−InitialView 【 ② 】−msoFileDialogViewProperties 【 ① 】−InitialView 【 ② 】−msoFileDialogViewDetails 【 ① 】−InitialFileName 【 ② 】−msoFileDialogViewDetails 【 ① 】−InitialView 【 ② 】−msoFileDialogViewList None 44. 次のコードは、ダイアログで選択されたファイルのパスを取得するものである。以下の空欄に入る適切な語句を解答しなさい。 *例ではCドライブ内Dataフォルダ内のテキストファイルを選択しています。Sub Exam1() Dim fld As FileDialog Set fld = Application.FileDialog(msoFileDialogFilePicker) If fld.Show = -1 Then MsgBox fld.(1) Set fld = NothingEnd Sub 45. FileDialog オブジェクトの InitialView プロパティに指定する定数のうち、ファイルを大きいアイコンで並べて表示するものはどれか。選択肢の中から適切なものを1つ解答しなさい。 msoFileDialogViewSmallIcons msoFileDialogViewPreview msoFileDialogViewThumbnail msoFileDialogViewLargeIcons None 46. 次のコードは、アプリケーションを使ってフォルダーを選択するダイアログを表示するものである。以下の空欄に入る適切なコードや語句を解答しなさい。Sub Exam1() Dim sh As Object, fld As Object Set sh = CreateObject("") Set fld = sh.(0, "フォルダを選択してください", 0) MsgBox fld Set sh = Nothing Set fld = NothingEnd Sub 47. OLEやOLEオートメーションに関する説明として、選択肢の中から適切なものを1つ解答しなさい。 OLEはファイルを圧縮して保存するための形式である。 OLEはObject Linking and Embeddingの略で、アプリケーション間でオブジェクトをやり取りする仕組みで、外部のアプリケーションのオブジェクトを操作します。 OLEはデータベース専用の接続方式で、Access以外のアプリケーションでは使えない。 OLEはOnline Editionの略で、Webサービスと連携するための仕組みである。 None 48. 次のコードはExcelへの参照を目的に、参照設定でMicrosoft Excel Object XX.X Libraryを有効にし、事前バインディングでExcelアプリケーションを一度は生成、表示するものである。以下の空欄に入る適切なコードを解答しなさい。Sub Exam1() Dim xl As New xl.Visible = True xl.Quit Set xl = NothingMsgBox "完了"End Sub 49. Access VBAからOLEオートメーションでExcelを操作する際、オートメーションサーバとして作成できる主なオブジェクトには、それぞれ固有のクラス名がある。Excelのワークシートを表すクラス名選択肢の中から適切なものを1つ解答しなさい。 Excel.Worksheet Excel.Sheet Excel.Workbook Excel.Chart None 50. OLEオートメーションでAccessからExcelを操作する場合の「オートメーションサーバ」と「オートメーションクライアント」の組み合わせとして正しいものを1つ選びなさい。 オートメーションサーバ・オートメーションクライアントの区別はOLEオートメーションには存在しない。 ExcelもAccessも、どちらもオートメーションサーバである。 操作される側のExcelがオートメーションサーバ、操作する側のAccessがオートメーションクライアントである。 操作する側のAccessがオートメーションサーバ、操作される側のExcelがオートメーションクライアントである。 None 51. 次のコードは、Excelブックを画面に表示せずに開き、シートの使用済みの範囲の値をすべて取り出してメッセージに表示した後、Excelアプリケーションを終了するものである。以下の空欄に入る適切な語句を解答しなさい。Sub Exam1() Dim xl As New Excel.Application Dim xlbk As Workbook Dim N As Variant, A As Variant Dim str As String, i As Long xl.Visible = False Set xlbk = xl.Workbooks.Open(CurrentProject.Path & "¥Data1") N = xlbk.ActiveSheet. For Each A In N i = i + 1 If i Mod 3 <> 0 Then str = str & A & Space(1) Else str = str & A & vbCrLf End If Next A MsgBox str xl. Set xlbk = Nothing Set xl = Nothing MsgBox "完了"End Sub 52. 他のアプリケーション(Excelなど)をOLEオートメーションで操作する際の注意点として、最も適切なものを1つ選びなさい。 操作対象アプリのすべての機能は、Accessのオブジェクトブラウザだけで確認できる。 外部アプリのオブジェクトは解放不要で、使用後に放置してよい。 外部アプリを操作するには、必ず実行時バインディングを使わなければならない。 操作対象アプリのオブジェクト・メソッド・プロパティはAccessのヘルプには載っていないため、対象アプリ側の情報を別途参照する必要がある。 None 53. VBAの高速化の基本的な考え方に関する説明として、最も適切なものを1つ選びなさい。 高速化のためには、必ずすべての変数をVariant型で宣言する。 高速化は、コードの行数をできるだけ減らすことだけで達成できる。 高速化とは、コンピューターのメモリを増設することを指す。 高速化には「できる限り無駄な処理を行わない」ことと「より処理速度の速い方法を選ぶ」ことの2つのアプローチがある。 None 54. 処理の高速化の観点から、事前バインディングと実行時バインディングを比較した説明として、最も適切なものを1つ選びなさい。 事前バインディングは実行前に型が確定するため、実行時バインディングより高速に動作する。 どちらのバインディングでも処理速度に差はない。 実行時バインディングのほうが常に高速である。 事前バインディングは参照設定が不要な分だけ高速である。 None 55. 次のコードは、 高速化の目的で値が見つかった時点で、それ以上不要な繰り返しを途中で抜けるものである。以下の空欄に入る適切な語句を解答しなさい。Sub Exam1() Dim i As Long For i = 1 To 1000 If i = 500 Then Next iMsgBox "完了"End Sub 56. 次のコードは、[Table Product1]からIDが"T1005"のProduct Nameを取得して表示するものである。同じ取得をDLookup関数で行う場合と比べたときの、動作と処理速度の説明として最も適切なものを1つ選びなさい。Sub Exam1() Dim rst As DAO.Recordset Dim strSQL As String strSQL = "SELECT [Product Name] FROM [Table Product1] WHERE ID = 'T1005'" Set rst = CurrentDb.OpenRecordset(strSQL) MsgBox rst.Fields("Product Name") rst.Close Set rst = NothingEnd Sub DLookup関数では1件しか取得できないため、この方法とは結果が異なる。 DLookup関数で取得する場合と結果は同じで、この方法(SQL+Recordset)の方が高速に処理できる。 どちらの方法でも、結果・速度に違いはない。 DLookup関数で取得する場合と結果は同じだが、この方法の方が処理は遅い。 None 57. 次のコードは、[Table Sports1]に新しいレコードを1件追加するものである。同じ追加を「SQL文のINSERTをExecuteメソッドで実行する方法」と比べたときの、動作と処理速度の説明として最も適切なものを1つ選びなさい。Sub Exam1() Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Table Sports1") rst.AddNew rst.Fields("No") = "D0002" rst.Fields("Name of sport") = "Curling" rst.Fields("Price") = 1200 rst.Update rst.Close Set rst = NothingEnd Sub AddNew方式ではレコードを追加できず、結果が異なる。 どちらの方法でも、結果・速度に違いはない。 INSERT文をExecuteで実行する場合と結果は同じで、特に繰り返し追加する場合はこのAddNew方式の方が高速である。 Execute方式の方が常に高速である。 None 58. VBAの高速化と可読性(読みやすさ・保守性)の関係に関する説明として、最も適切なものを1つ選びなさい。 高速化は重要だが、コンピューターの性能が十分な場合は、過度な高速化よりもコードの可読性を優先すべき場面もある。 コードの可読性を犠牲にしてでも、常に最大限の高速化を最優先すべきである。 高速化とコードの可読性は無関係で、両立を考える必要はない。 変数の型はすべて省略したほうが、高速で読みやすくなる。 None Time's up