VBAエキスパート Excel VBA ベーシック 問題一覧

330問を8の分野に整理しています。各分野のページでは、問題文・4つの選択肢・正解・解説をすべて無料で確認できます。学びたい分野から選んでください。

クイズモードで挑戦 →

① VBAの基礎とマクロ記録

38

マクロとVBAの関係、Visual Basic Editor(VBE)の画面構成、ブックとマクロの関係、マクロのセキュリティ設定を押さえたうえで、実際の操作を自動的にコード化する「マクロの記録」を学びます。記録先を作業中のブックにするか個人用マクロブックにするかの違い、マクロを含むブックはxlsm形式で保存する必要があることが定番の論点です。つまずきやすいのは、記録されたコードが Select と Selection を多用した冗長な形になる点で、これをそのまま覚えると後の分野で書くコードが不自然になります。記録は「調べ方」として使い、必要な行だけ読み取る姿勢が大切です。

この分野の38問を解説つきで見る →

② モジュールとプロシージャ

35

コードを書く器である標準モジュールと、処理のまとまりであるプロシージャを学びます。Sub プロシージャは Sub 名前() で始まり End Sub で終わること、値を返す Function プロシージャでは関数名に結果を代入すること、Call による呼び出しと引数の渡し方、Public と Private による適用範囲の違いが問われます。コメントはアポストロフィ(')または Rem で記述し、その行の以降が無視されます。つまずきどころは、Call を使う場合と省略する場合で引数のかっこの付け方が変わる点と、Sub と Function の役割の混同です。

この分野の35問を解説つきで見る →

③ VBAの構文

40

VBAの文の組み立て方そのものを扱う分野です。中心はオブジェクト式で、「オブジェクト.プロパティ」で状態を取得・設定し、「オブジェクト.メソッド」で動作を実行するという構造を理解します。メソッドの引数は順番で渡す方法と、引数名:=値 と書く名前付き引数の方法があります。あわせてステートメント、関数、算術・比較・論理演算子、文字列連結の & を学びます。つまずきやすいのは、代入の = と名前付き引数の := の書き分け、そして文字列連結で + ではなく & を使う理由(数値と文字列が混在すると + は挙動が変わる)です。

この分野の40問を解説つきで見る →

④ 変数と定数

40

値を一時的に入れておく変数と、変えない値に名前を付ける定数を学びます。Dim による宣言、Long・String・Double・Boolean・Date・Variant といったデータ型の選び方、Option Explicit を書くと未宣言の変数をエラーで検出できること、Const による定数定義が要点です。適用範囲はプロシージャ内だけで有効なものからモジュール全体、全モジュールで使えるものまで段階があります。つまずきやすいのは、セルやシートなどオブジェクトを変数に入れるときは Set が必要な点と、Dim a, b As Long と書くと a が Variant 型になる点です。

この分野の40問を解説つきで見る →

⑤ セルの操作

50

本試験でもっとも実務に直結する分野です。Range はRange("A1")やRange("A1:C3")のようにアドレスの文字列で、Cells はCells(1, 2)のように行番号・列番号の数値で指定するため、繰り返し処理と組み合わせるなら Cells が扱いやすくなります。値の取得・設定は Value、表示形式は NumberFormat で扱い、Text は画面に表示されているとおりの文字列を返す読み取り専用のプロパティです。ほかに基準セルからずらす Offset、範囲を広げる Resize、Copy による複写、End(xlUp) などで表の最終セルを特定する方法が問われます。

この分野の50問を解説つきで見る →

⑥ ステートメント

42

処理の流れを制御する構文を学びます。If...Then...Else は条件によって処理を分け、条件を増やすときは ElseIf を使い End If で閉じます。For...Next は決まった回数だけ繰り返す構文で、Step を付けると増減の幅を変えられます。With ステートメントは同じオブジェクトに対する記述をまとめるもので、With の中では先頭のピリオドからプロパティやメソッドを書き、End With で閉じます。つまずきやすいのは、ElseIf を Else If と2語に分けて書く誤りと、With ブロック内で先頭のピリオドを書き忘れてオブジェクトの指定が外れる誤りです。

この分野の42問を解説つきで見る →

⑦ 関数

45

VBAの組み込み関数を用途別に学びます。日付・時刻では Date、Now、DateAdd、文字列では Len、Left、Mid、InStr、数値では Int、Abs、Round などが対象です。つまずくのはダイアログ系で、MsgBox はボタン定数を指定すると押されたボタンに応じた戻り値(vbYes、vbNo など)を返し、戻り値を受け取るときは引数をかっこで囲みます。InputBox は2種類あり、VBA の InputBox は常に文字列を返しキャンセル時は長さ0の文字列、Application.InputBox は Type 引数で型を指定でき、キャンセル時は False を返します。

この分野の45問を解説つきで見る →

⑧ ブック・シート操作とマクロの実行

40

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

この分野の40問を解説つきで見る →
VBAエキスパート Excel VBA ベーシックトップへ戻る