VBAエキスパート Excel VBA ベーシック ⑧ ブック・シート操作とマクロの実行

ブックとシートの操作と、作ったマクロを動かす方法を学びます。ブックでは Workbooks.Open で開く、Add で新規作成、Save と SaveAs で保存、Close で閉じる(SaveChanges 引数で保存の有無を指定)といった操作と複数ブックの扱いが問われます。シートは挿入・削除・コピー・移動・名前の変更などが対象です。実行方法はVBEから実行する、[マクロ]ダイアログから選ぶ、シート上のボタンに登録する、の3通りです。つまずきやすいのは、マクロが書かれたブックを指す ThisWorkbook と、アクティブなブックを指す ActiveWorkbook の混同です。

この分野の問題40問を、選択肢・正解・解説つきで掲載しています。まず自分で解答を考えてから「正解と解説を見る」を開いて答え合わせをしてください。

クイズモードで挑戦 →

2913番目のシートを指定する正しいコードはどれか。

  1. ASheet(3)
  2. BSheets("3")
  3. CSheets(3)
  4. DSheet("3")
正解と解説を見る

正解:CSheets(3)

シート番号で指定する場合は、Sheetsオブジェクトの引数に数値を指定します。

この問題の解説ページを開く →

292最後のシートを指定する記述として正しいものはどれか。

  1. ASheets(Sheets.End)
  2. BSheets(Sheets.Last)
  3. CSheets(Sheets.Max)
  4. DSheets(Sheets.Count)
正解と解説を見る

正解:DSheets(Sheets.Count)

最後のシートを指定するときは、シート数を表す「Sheets.Count」を使います。

この問題の解説ページを開く →

293現在開いているシート(アクティブシート)を表すオブジェクトはどれか。

  1. ACurrentSheet
  2. BOpenSheet
  3. CActiveSheet
  4. DThisSheet
正解と解説を見る

正解:CActiveSheet

現在開いているシートは、ActiveSheetプロパティで表します。

この問題の解説ページを開く →

294シートを開く(アクティブにする)ことができるメソッドの組み合わせとして正しいものはどれか。

  1. AOpenとSelect
  2. BOpenとActivate
  3. CActivateとSelect
  4. DShowとSelect
正解と解説を見る

正解:CActivateとSelect

シートを開くには、ActivateメソッドまたはSelectメソッドを使います。

この問題の解説ページを開く →

295複数のシートを選択する場合、どのメソッドを使用すべきか。

  1. AChoose
  2. BActivate
  3. COpen
  4. DSelect
正解と解説を見る

正解:DSelect

Activateメソッドは単一のシートしか選択できませんが、Selectメソッドは複数のシートを選択できます。

この問題の解説ページを開く →

296シートをコピーするCopyメソッドで、コピー先を指定する引数の名前として正しいものはどれか。

  1. ATo または At
  2. BTarget または Destination
  3. CPrev または Next
  4. DBefore または After
正解と解説を見る

正解:DBefore または After

CopyメソッドやMoveメソッドでは、Before または After の引数で位置を指定します。

この問題の解説ページを開く →

2971番目のシートを、2番目のシートの後ろに移動するコードはどれか。

  1. ASheets(1).Move After:=Sheets(2)
  2. BSheets(1).Move Before:=Sheets(2)
  3. CSheets(1).Move Sheets(2)
  4. DSheets(1).Move To:=Sheets(2)
正解と解説を見る

正解:ASheets(1).Move After:=Sheets(2)

移動にはMoveメソッドを使い、後ろに移動させるので引数Afterを指定します。

この問題の解説ページを開く →

298シートのコピーや移動において、引数BeforeとAfterの両方を同時に指定することはできるか。

  1. Aできる
  2. Bできない
  3. Cコピー時のみできる
  4. D移動時のみできる
正解と解説を見る

正解:Bできない

引数BeforeとAfterはどちらか一方だけを指定し、両方を同時に指定することはできません。

この問題の解説ページを開く →

299最後のシートの後ろに新しいシートを挿入する正しいコードはどれか。

  1. ASheets.Add After:=Sheets(Sheets.Count)
  2. BSheets.Insert After:=Sheets(Sheets.Count)
  3. CSheets.Add Before:=Sheets(Sheets.Count)
  4. DSheets.Insert Before:=Sheets(Sheets.Count)
正解と解説を見る

正解:ASheets.Add After:=Sheets(Sheets.Count)

挿入にはAddメソッドを使い、最後のシートの後ろに指定するためAfter:=Sheets(Sheets.Count)と記述します。

この問題の解説ページを開く →

300新しいシートを3つ挿入したい場合、Addメソッドのどの引数を使用するか。

  1. ANumber
  2. BCount
  3. CQuantity
  4. DAmount
正解と解説を見る

正解:BCount

挿入するシート数を指定するには、Addメソッドの引数「Count」を使います。

この問題の解説ページを開く →

301「削除するシート」という名前のシートを削除する正しいコードはどれか。

  1. ASheets("削除するシート").Remove
  2. BSheets("削除するシート").Clear
  3. CSheets("削除するシート").Erase
  4. DSheets("削除するシート").Delete
正解と解説を見る

正解:DSheets("削除するシート").Delete

シートを削除するには、Deleteメソッドを使います。

この問題の解説ページを開く →

302シートを削除する際の確認メッセージを表示させないようにするプロパティはどれか。

  1. AApplication.DisplayAlerts
  2. BApplication.ScreenUpdating
  3. CApplication.EnableEvents
  4. DApplication.Calculation
正解と解説を見る

正解:AApplication.DisplayAlerts

確認メッセージを非表示にするには、Application.DisplayAlerts = False と設定します。

この問題の解説ページを開く →

303シートを非表示にするために使用するプロパティはどれか。

  1. AHidden
  2. BVisible
  3. CDisplay
  4. DShow
正解と解説を見る

正解:BVisible

シートを非表示にする(表示する)には、Visibleプロパティを使います。

この問題の解説ページを開く →

304シートを非表示にした場合、シート番号はどのように扱われるか。

  1. Aシート番号は割り振られなくなる
  2. B非表示のシートにもシート番号が割り振られる
  3. C表示されているシートだけで再採番される
  4. D最後の番号に変更される
正解と解説を見る

正解:B非表示のシートにもシート番号が割り振られる

非表示のシートにもシート番号が割り振られるため、シート番号での指定時には注意が必要です。

この問題の解説ページを開く →

305すべてのシートを選択するコードとして正しいものはどれか。

  1. ASheets.Select
  2. BSheets.All
  3. CSheets.ActivateAll
  4. DSheets.ChooseAll
正解と解説を見る

正解:ASheets.Select

すべてのシートを選択するには、「Sheets.Select」と記述します。

この問題の解説ページを開く →

306まだ開いていないブックを開く場合、Workbooks.OpenメソッドのFileName引数に何を指定するか。

  1. Aファイルパス(拡張子あり)
  2. Bファイル名(拡張子あり)
  3. Cファイル名(拡張子なし)
  4. Dフォルダパスのみ
正解と解説を見る

正解:Aファイルパス(拡張子あり)

まだ開いていないブックを開くには、Workbooks.OpenのFileName引数にファイルパス(拡張子を含む)を指定します。

この問題の解説ページを開く →

307すでに開いているブックを指定する場合、Workbooksオブジェクトの引数に何を記述するか。

  1. Aファイルパス(拡張子あり)
  2. Bファイル名(拡張子なし)
  3. Cファイル名(拡張子あり)
  4. Dインデックス番号のみ
正解と解説を見る

正解:Cファイル名(拡張子あり)

すでに開いているブックを指定するときは、ファイル名(拡張子を含む)を指定します。

この問題の解説ページを開く →

308実行中のマクロが記述されているブックを表すプロパティはどれか。

  1. AActiveWorkbook
  2. BThisWorkbook
  3. CMacroWorkbook
  4. DCurrentWorkbook
正解と解説を見る

正解:BThisWorkbook

実行中のマクロが置かれているブックはThisWorkbookプロパティで表します。

この問題の解説ページを開く →

309新規作成した直後で、まだ保存されていないブックを指定する場合の引数はどれか。

  1. A拡張子を含むファイルパス
  2. B拡張子を含むファイル名
  3. C保存されるまで指定できない
  4. D拡張子なしのファイル名
正解と解説を見る

正解:D拡張子なしのファイル名

保存されるまで拡張子が不明なため、拡張子なしのファイル名を指定します。

この問題の解説ページを開く →

310ブックを開くためのメソッドはどれか。

  1. AActivate
  2. BSelect
  3. CShow
  4. DOpen
正解と解説を見る

正解:DOpen

ブックを開くには、WorkbooksオブジェクトのOpenメソッドを使います。

この問題の解説ページを開く →

311ファイルパスを変数で指定するのではなく、インデックス番号(Workbooks(1)など)でブックを指定することについて、どう説明されるか。

  1. A実務で頻繁に使われる最も安全な方法である
  2. B番号で指定することは構文エラーとなる
  3. C開いた順ではなくアルファベット順に採番される
  4. D意図しないファイルを指定する危険性が高く安全ではない
正解と解説を見る

正解:D意図しないファイルを指定する危険性が高く安全ではない

ブックの番号は開いた順番に採番され変わるため、ファイルパスやファイル名で指定するほうが安全です。

この問題の解説ページを開く →

312新規ブックを作成するメソッドはどれか。

  1. ACreate
  2. BAdd
  3. CNew
  4. DMake
正解と解説を見る

正解:BAdd

新規ブックを作成するには、WorkbooksオブジェクトのAddメソッドを使います。

この問題の解説ページを開く →

313新規ブックを作成し、そのブックに対して連続して操作を行う際に便利なステートメントはどれか。

  1. AForステートメント
  2. BIfステートメント
  3. CWithステートメント
  4. DSelectステートメント
正解と解説を見る

正解:CWithステートメント

「With Workbooks.Add」のようにWithステートメントを併用すると、効率的に新規ブックを操作できます。

この問題の解説ページを開く →

314ブックに名前を付けて保存するメソッドはどれか。

  1. ASave
  2. BStore
  3. CSaveAs
  4. DExport
正解と解説を見る

正解:CSaveAs

ブックに名前を付けて保存するには、SaveAsメソッドを使います。

この問題の解説ページを開く →

315すでに名前が付いているブックを上書き保存するメソッドはどれか。

  1. ASave
  2. BSaveAs
  3. CUpdate
  4. DOverwrite
正解と解説を見る

正解:ASave

ファイルを上書き保存するにはSaveメソッドを使います。引数は不要です。

この問題の解説ページを開く →

316ブックが変更されたあと、保存されていない状態かどうかを調べるプロパティはどれか。

  1. ASaved
  2. BSaveState
  3. CIsSaved
  4. DModified
正解と解説を見る

正解:ASaved

ブックが保存されているかどうかを調べるには、Savedプロパティを使います。

この問題の解説ページを開く →

317ブックが変更され、まだ保存されていない場合、Savedプロパティの戻り値はどうなるか。

  1. AFalse
  2. BTrue
  3. CNull
  4. DError
正解と解説を見る

正解:AFalse

保存されているときはTrue、保存されていないときはFalseになります。

この問題の解説ページを開く →

318ブックを閉じるメソッドはどれか。

  1. AQuit
  2. BExit
  3. CEnd
  4. DClose
正解と解説を見る

正解:DClose

ブックを閉じるには、Closeメソッドを使います。

この問題の解説ページを開く →

319ブックを閉じる際、変更内容を保存せずに閉じる引数の指定として正しいものはどれか。

  1. ASaveChanges:=True
  2. BCloseOptions:=False
  3. CSaveChanges:=False
  4. DCloseAction:=False
正解と解説を見る

正解:CSaveChanges:=False

引数SaveChangesにFalseを指定すると、保存せずに閉じます。

この問題の解説ページを開く →

320マクロを実行する方法として、正しくないものはどれか。

  1. AVBEでプロシージャ内にカーソルを置いてF5を押す
  2. BExcelで[マクロ]ダイアログから選んで実行する
  3. Cボタンや図形にマクロを登録してクリックする
  4. Dセルにマクロ名を数式として入力して実行する
正解と解説を見る

正解:Dセルにマクロ名を数式として入力して実行する

マクロはセルの数式としては実行できません。VBEのF5・[マクロ]ダイアログ・ボタンや図形などから実行します。

この問題の解説ページを開く →

321VBE上で、プロシージャではない部分にカーソルを置いてF5キーを押した場合、どうなるか。

  1. Aエラーメッセージが表示される
  2. B一番上のプロシージャが実行される
  3. C[マクロ]ダイアログボックスが表示される
  4. D何も起こらない
正解と解説を見る

正解:C[マクロ]ダイアログボックスが表示される

実行するマクロを特定できないため、[マクロ]ダイアログボックスが表示されユーザーに選択させます。

この問題の解説ページを開く →

322Excelの画面から[マクロ]ダイアログボックスを表示するショートカットキーはどれか。

  1. AAlt + F5
  2. BAlt + F8
  3. CAlt + F11
  4. DCtrl + M
正解と解説を見る

正解:BAlt + F8

Excelで[マクロ]ダイアログボックスを表示するには、Alt + F8 を押します。

この問題の解説ページを開く →

323クイックアクセスツールバーに登録したマクロを実行するには、どこをクリックするか。

  1. A数式バー
  2. Bクイックアクセスツールバー上に追加されたボタン
  3. Cステータスバー
  4. Dシート見出し
正解と解説を見る

正解:Bクイックアクセスツールバー上に追加されたボタン

QATにマクロを登録すると、ツールバー上に追加されたボタンをクリックしてマクロを実行できます。

この問題の解説ページを開く →

324クイックアクセスツールバー(QAT)に登録できないものはどれか。

  1. A標準モジュールやユーザーフォーム
  2. Bマクロ
  3. C保存ボタン
  4. D元に戻すボタン
正解と解説を見る

正解:A標準モジュールやユーザーフォーム

QATにはマクロやコマンドのボタンは登録できますが、標準モジュールやユーザーフォームそのものは登録できません。

この問題の解説ページを開く →

325他のユーザーとクイックアクセスツールバーの設定を共有する場合、どの機能を利用するか。

  1. Aコピー/貼り付け機能
  2. B共有ブック機能
  3. Cエクスポート/インポート機能
  4. Dクラウド同期機能
正解と解説を見る

正解:Cエクスポート/インポート機能

設定を他のユーザーと共有するには、エクスポート/インポート機能を活用する必要があります。

この問題の解説ページを開く →

326ワークシート上にボタンを挿入するには、どのタブのメニューを使用するか。

  1. A[開発]タブ
  2. B[ホーム]タブ
  3. C[表示]タブ
  4. D[挿入]タブ
正解と解説を見る

正解:A[開発]タブ

[開発]タブの[挿入]メニューから[ボタン(フォームコントロール)]をクリックします。

この問題の解説ページを開く →

327Excelでワークシート上で使用できるシンプルなコントロールを何と呼ぶか。

  1. AActiveX コントロール
  2. Bマクロ コントロール
  3. Cフォーム コントロール
  4. DVBA コントロール
正解と解説を見る

正解:Cフォーム コントロール

シンプルなコントロールはフォーム コントロールと呼ばれます。

この問題の解説ページを開く →

328高度な機能やカスタマイズが可能で、VBAのユーザーフォームなどで使用されるコントロールを何と呼ぶか。

  1. Aフォーム コントロール
  2. BActiveX コントロール
  3. Cダイナミック コントロール
  4. Dアドバンス コントロール
正解と解説を見る

正解:BActiveX コントロール

高度な機能が可能なのはActiveX コントロールです。

この問題の解説ページを開く →

329シート上に挿入した図形をクリックしてマクロを実行できるようにするための操作はどれか。

  1. A図形を右クリックして[マクロの記録]
  2. B図形を右クリックして[マクロの登録]
  3. C図形を右クリックして[コードの表示]
  4. D図形をダブルクリックする
正解と解説を見る

正解:B図形を右クリックして[マクロの登録]

図形を右クリックし、[マクロの登録]をクリックしてマクロを選択します。

この問題の解説ページを開く →

330複数シートの選択を行う「Sheets(Array("PL2024", "PL2025")).Select」のコードは実行可能か。

  1. AArray関数は使えない
  2. B不可能
  3. CActivateメソッドに変更すれば可能
  4. D可能
正解と解説を見る

正解:D可能

Array関数を用いて複数のシート名を指定し、Selectメソッドで選択することが可能です。

この問題の解説ページを開く →
VBAエキスパート Excel VBA ベーシックの全分野一覧へ戻る