2026/09/08

合格率約80%でも落ちる2割|Excel VBA ベーシックの失点

動くコードが書けることと、試験で正解できることは別物です。実務で触れていない範囲がそのまま空白になり、他の言語を書ける人ほどオブジェクト式や型の緩さで足をとられる。50分の配分とあわせて確かめます。

執筆:ケンテイラボ編集部(資格試験対策アプリ開発・運営)

VBAエキスパートは、株式会社オデッセイ コミュニケーションズが実施する、Microsoft Office のマクロとVBAのスキルを測る認定試験です。そのうち Excel VBA ベーシックは、ExcelのマクロとVBAの基礎を対象とする入門レベルの科目にあたります。試験はコンピュータを使ったCBT形式で、試験時間は50分、出題数は40問前後です。受験料は一般13,200円(税込)、割引受験制度が適用される場合は11,880円(税込)とされています。

この試験を調べていて最初に目に入るのは、おそらく合格率の高さです。公式サイトの「試験に関するデータ」では、Excel VBA ベーシックの合格率が約80%と公表されています。おおよそ5人に4人が合格している計算で、難易度を尋ねられれば「入門レベル」と答えるほかない数字です。本サイトでもこの試験の難易度は★★☆☆☆としています。

ただ、合格率が高い試験ほど「受かるための情報」は薄くなりがちです。8割が受かるのですから、標準的な対策をすれば受かる、で話が終わってしまうからです。そこで本記事では角度を変えて、「では、落ちる2割はどこで落ちるのか」を具体化することを目的にします。高い合格率の裏側にある失点の型を先に知っておくほうが、この試験に関しては実用的だと考えられるためです。

結論:難しさは文法の複雑さではなく、綴りを書かされることと、範囲を落とさないことにある

結論から述べます。Excel VBA ベーシックが難しいとすれば、その難しさはVBAという言語の文法が込み入っているからではありません。この試験で問われるのは、条件分岐、繰り返し、変数、オブジェクトの操作といった、どのプログラミング言語にもある基本的な要素です。落ちる原因のほとんどは、次の二つに集約されます。

  • コードを選択肢から選ぶのではなく、穴埋めで直接入力させる形式が含まれること。綴りや記号まで正確でなければ得点にならない
  • 出題範囲が大分類10項目にわたり、実務で自分が使っている機能だけを覚えていると、触れたことのない項目でまとめて失点すること

一つ目は、知識の解像度の問題です。読んで意味が分かるレベルと、白紙から正しく書けるレベルのあいだには、想像以上の差があります。ElseIf を Else If と2語に分けて書いてしまう、With ブロックの中で先頭のピリオドを落とす、といった誤りは、コードを読んでいるだけでは自覚のしようがありません。

二つ目は、範囲の網羅性の問題です。Excel VBA を業務で使っている人ほど、自分の書き慣れたパターンの外側が手薄になります。ブックの保存や複数ブックの扱い、ダイアログの戻り値、日付や文字列の組み込み関数など、普段書かない領域はまとめて空白になりがちです。合格率約80%の試験で残りの2割に入ってしまうのは、たいていこのどちらかの理由によるものと考えられます。

公表されている合格率約80%を、どう読むか

まず数字の性格を確かめておきます。実施団体であるオデッセイ コミュニケーションズは、公式サイトの「試験に関するデータ」で科目別の合格率を公開しています。そこに示されている Excel VBA ベーシックの合格率は約80%で、これは2019年5月から2025年12月までの受験者データを集計したものです。合格率が公表されている検定は意外に少なく、この点は受験を検討するうえで扱いやすい材料です。

注意したいのは、この数字が特定の回や特定の年度のものではないという点です。VBAエキスパートはCBTで通年実施されるため、そもそも「第何回」という回次がありません。公表されている合格率は、6年半あまりの期間を通した累計ベースの値だということになります。したがって「今年は難化した」「この回は易しかった」という読み方はできませんし、逆に言えば、時期によって数字が大きく動く種類の試験ではないとも考えられます。

受験者数についても触れておきます。同じページには全科目を合わせた累計受験者数として81,626名(2025年12月31日時点)という数字が掲載されています。ただし科目別の受験者数の実数は公表されておらず、公開されているのは科目ごとの割合を示すグラフのみです。したがって「Excel VBA ベーシックだけで何名が受験した」という数字を本記事で示すことはできません。

なお、公式ページ内では表示形式によって80%と81%の両方の表記が確認できます。いずれも同じ集計期間の値です。本記事では小さいほうを採って「約80%」と表記しています。1ポイントの差が準備の方針を左右することはありませんが、ほかで見た数字と食い違っていた場合の理由として書き添えておきます。

1000点満点で700点以上、という基準が意味すること

合格基準は、1000点満点中700点以上とされています。ただし公式には、試験問題の更新などによって合格ラインが変動することがある、という趣旨の説明が添えられています。つまり700点は現時点で案内されている水準であって、固定された数字として受け取るべきものではありません。受験前には公式サイトで最新の案内を確認してください。

この1000点満点という表記は、素点の合計ではなく得点をスケール化したものと理解するのが自然です。出題は40問前後ですから、40問で1000点なら1問あたり25点という単純計算になりますが、実際の配点は公表されていません。設問の形式によって重みが違う可能性も否定できないため、「何問間違えたら不合格か」を厳密に逆算することはできない、というのが正確なところです。

実務的な受け止め方としては、7割で合格ということは3割落としてよい、ではなく、3割しか落とせない、と考えるほうが安全です。40問なら、感覚として12問前後が失点の許容量にあたります。苦手な分野をひとつ丸ごと捨てると、それだけで許容量の大半を使い切ってしまう水準だと分かります。合格率が高い試験だからといって、範囲に穴を作ってよい試験ではありません。

「動くコードが書ける」と「試験で正解できる」はイコールではない

この試験でもっとも起きやすいすれ違いが、ここにあります。Excel VBA を日常的に書いている人が、対策をほとんどせずに受けて足元をすくわれる、というパターンには共通した背景があります。業務で通用するコードを書く能力と、試験の設問に答える能力は、重なってはいるものの同じではありません。以下、典型的な三つの型を挙げます。

実務では触らないプロパティが、試験では平然と出てくる

業務のマクロは、目的が決まっているぶん使う道具が偏ります。セルの値を読み書きして、条件で分けて、繰り返す。それだけで大半の仕事は片づいてしまうため、たとえば Text プロパティ、NumberFormat プロパティ、Resize、Application.InputBox といったものに一度も触れないまま何年も過ごすことは珍しくありません。

しかし出題範囲は、実務での使用頻度が高い順に並んでいるわけではありません。Value がセルの値そのものを扱うのに対し、Text は画面に表示されているとおりの文字列を返す読み取り専用のプロパティである、といった区別は、使ったことがなければ推測では答えられません。範囲表を上から順に潰していく作業は、経験者ほど省略しがちで、しかし経験者ほど必要になります。

マクロの記録に任せて書いてきた人がつまずくところ

操作をそのままコード化してくれる「マクロの記録」は便利な機能で、出題範囲にも含まれています。ただし記録されたコードは、Select でセルを選択してから Selection に対して処理をする、という冗長な形になりがちです。これを自分の書き方として身につけてしまうと、オブジェクト式の理解が曖昧なまま止まってしまいます。

試験で問われるのは、「オブジェクト.プロパティ」で状態を取得・設定し、「オブジェクト.メソッド」で動作を実行するという、文の構造そのものです。Range("A1").Value = 100 のように、選択という手順を挟まず対象を直接指定して書けることが前提になります。記録機能は答えを写す道具ではなく、書き方を調べる道具として使う。これは試験対策としても、実務のコードの読みやすさとしても同じ結論になります。

見つけてきたコードを貼って動かしてきた人がつまずくところ

検索して出てきたコードを貼り付け、動いたのでよし、という進め方でも業務は回ります。ただしその場合、変数を宣言する Dim、型を選ぶという発想、オブジェクトを変数に入れるときに Set が必要になること、といった土台の部分が抜けたままになりやすくなります。これらは貼り付けたコードの中に書いてあっても、意味を意識せずに読み飛ばせてしまう箇所です。

試験ではこの土台が正面から問われます。Option Explicit を書くと未宣言の変数をエラーとして検出できること、Dim a, b As Long と書くと a は Long ではなく Variant になること、値を変えないものには Const で名前を付けられること。いずれも動くコードを書くだけなら知らなくても困りませんが、設問としては差が付く論点です。

選択肢がないという条件 — 穴埋め記述が効いてくる場面

この試験の出題形式は、選択問題、ドロップダウンリストからの選択、そしてコードを直接入力する穴埋め記述の組み合わせです。難易度を押し上げているのは三つ目です。選択肢があれば、見た瞬間に「これだ」と分かる程度のうろ覚えでも正解できますが、白紙に書かせる形式ではそれが通用しません。

入力にあたっては、特別な指示がない限り英字は半角小文字、数字・記号・スペースも半角で入力するのが原則とされています。全角で入力してしまう、余計な空白が混じる、といった事故は内容の理解と無関係に失点につながるため、形式面のルールは事前に確認しておく価値があります。

記述で差が付くのは、次のような「似ているが違う」対です。読むだけの学習では見分けがついている気になり、書かせてみると崩れます。学習の途中で、選択肢を見ずに書けるかどうかを一度試しておくことをおすすめします。

  • 代入の = と、名前付き引数の :=(メソッドの引数は Range("A1").Offset(1, 0) のように順番で渡す方法と、引数名:=値 の形で渡す方法がある)
  • 文字列を連結する & と、算術演算の +(数値と文字列が混在すると + は意図しない結果になり得るため、連結には & を使う)
  • 条件を追加する ElseIf(1語)と、Else の後ろに If を続けて書く形(2語)の違い
  • With ブロックの中でプロパティやメソッドの前に付ける先頭のピリオド(.Value のように書き、忘れると対象の指定が外れる)
  • 常に文字列を返しキャンセル時には長さ0の文字列となる InputBox 関数と、Type 引数で型を指定でき、キャンセル時には False を返す Application.InputBox
  • MsgBox の戻り値(vbYes、vbNo など)を受け取る書き方と、戻り値を使わない書き方でのかっこの有無

他の言語を書ける人が引っかかるところ

別のプログラミング言語の経験がある人にとって、VBAの制御構文そのものは特に新しいものではありません。それでも取りこぼしが出るのは、この言語に固有のクセの部分です。代表的なものを二つ挙げます。

オブジェクト式という、VBA独特の文の組み立て方

VBAの中心にあるのはオブジェクト式です。ブック、シート、セルといった対象をオブジェクトとして捉え、その状態を表すプロパティと、動作を表すメソッドで操作します。Workbooks.Open のように親から子へドットでたどっていく書き方は、Excelという操作対象を持つこの言語ならではの構造で、文法だけを知っていても対象の階層が頭に入っていないと書けません。

加えて、同じセル範囲を指す方法が複数あります。Range はRange("A1")やRange("A1:C3")のようにアドレスの文字列で指定し、Cells はCells(1, 2)のように行番号・列番号の数値で指定します。繰り返し処理の中で行や列を動かすなら数値で指定できる Cells のほうが扱いやすい、という使い分けは、実際に書いてみないと身につきにくい部分です。ThisWorkbook と ActiveWorkbook の違いのように、対象の指し方を問う設問も落としやすいところです。

Variant という緩さと、1から始まる数え方

型宣言の緩さも独特です。Dim で宣言するときに型を省略すると Variant 型になり、何でも入る代わりに何が入っているか分からなくなります。Long、String、Double、Boolean、Date といった型を選んで宣言する習慣は、他言語の経験者なら自然に持っているはずですが、VBAでは省略してもエラーにならないため、その緩さ自体が出題の対象になります。Option Explicit の役割も同じ文脈で問われます。

数え方にも注意が要ります。Cells(1, 1) は1行1列目、つまりA1を指し、行番号も列番号も1から始まります。Worksheets(1) のようにコレクションから取り出す場合も1番目です。一方で Dim 配列名(5) のように宣言した配列は、既定では添字が0から始まり、要素数は6になります。0始まりに慣れている人ほど、この混在は早い段階で整理しておいたほうが安全です。

ケンテイラボが収録している330問の分野内訳

ここからは、本サイトが公開している問題データの側から難易度を見ていきます。ケンテイラボの Excel VBA ベーシック対策には330問を収録しており、内容に応じて8つの分野に分けています。ただしこの8分野は、公式が示す出題範囲の大分類(10項目)そのものではなく、学習しやすさを優先して本サイトが独自に整理した区分です。また分野ごとの配点比率は公式に公表されていないため、以下の構成比は出題比率ではなく、あくまで収録問題の内訳としてご覧ください。

収録問題8分野の内訳と比重

ケンテイラボではVBAエキスパート Excel VBA ベーシックの収録問題を8の分野に分けて整理しています (学習しやすさを優先した本サイト独自の区分で、実施団体が公表している 出題区分そのものではありません)。収録している330問を分野別に集計すると、 最も問題数が多いのは「⑤ セルの操作」の50問(全体の15.2%)、 最も少ないのは「② モジュールとプロシージャ」の35問(同10.6%)です。上位3分野だけで全体の41.5%を占めるため、 ここを先に固めるかどうかが得点の土台になります。

収録数がもっとも多いのはセルの操作で、次いで関数、ステートメントと続きます。この三つは実務で書くコードの中心でもあり、記述式で問われたときに手が止まらない状態まで持っていければ、得点は安定しやすくなります。逆に、モジュールとプロシージャのように収録数が控えめな分野は、範囲が狭いぶん短時間で埋めやすい領域だと考えられます。合格ラインが7割であることを踏まえると、こうした埋めやすい分野を確実に取り切ることの価値は小さくありません。

分野ごとの学習負荷を、収録問題から測ってみる

同じ1問でも、覚えるための負荷は分野によって違います。次の表は、収録している330問を分野別に集計し、問題文に数値が含まれる割合と、問題文の平均文字数を示したものです。数値を含む割合が高い分野は具体的な値や引数を覚える比重が大きく、平均文字数が長い分野はコードや状況の読み取りが必要になりやすい、という目安として読めます。

分野別の学習タイプ(収録330問の集計)

ケンテイラボに収録しているVBAエキスパート Excel VBA ベーシックの問題を分野別に集計し、 「問題文または選択肢に数値が登場する問題の割合」と「問題文の平均文字数」を出しました。 数値の割合が高い分野は具体的な数字の暗記が得点を左右しやすく、 低い分野は用語の理解や文章の読み取りが中心になる傾向があります。

この試験でもっとも数値の比率が高いのは「⑤ セルの操作」で50%、 もっとも低いのは「① VBAの基礎とマクロ記録」で11%でした。 また問題文がもっとも長いのは「④ 変数と定数」の平均47字で、 設問を読み解く負担が大きい分野といえます。

  • ① VBAの基礎とマクロ記録38問/数値を含む問題 11%/問題文 平均35
  • ② モジュールとプロシージャ35問/数値を含む問題 34%/問題文 平均32
  • ③ VBAの構文40問/数値を含む問題 40%/問題文 平均34
  • ④ 変数と定数40問/数値を含む問題 33%/問題文 平均47
  • ⑤ セルの操作50問/数値を含む問題 50%/問題文 平均39
  • ⑥ ステートメント42問/数値を含む問題 48%/問題文 平均42
  • ⑦ 関数45問/数値を含む問題 22%/問題文 平均35
  • ⑧ ブック・シート操作とマクロの実行40問/数値を含む問題 20%/問題文 平均37

数値の比率が高い分野は、数字を単独で覚えるより 「どの制度の・何の基準か」とセットで整理すると定着しやすくなります。 比率が低い分野は、似た用語同士の違いを説明できる状態を目指すと得点が安定します。

この二つの指標は、学習の順番を決めるときに使えます。読み取りの負荷が高い分野は、まとまった時間が取れるときに腰を据えて進めるほうが効率がよく、逆に短い問題文が並ぶ分野は、移動時間のような細切れの時間でも回せます。なお、これはあくまで本サイトの収録問題を集計した結果であり、実際の試験の出題傾向を示すものではない点にご留意ください。

50分という試験時間をどう配分するか

試験時間は50分、出題は40問前後です。単純に割ると1問あたり75秒ほどの計算になります。知識を問う選択問題であれば十分に余裕のある配分ですが、コードを直接入力する設問と、コードを読んで結果を答える設問が混じることを考えると、体感の余裕はもう少し小さくなると見ておくのが無難です。

現実的な組み立て方は、迷った設問に長く留まらないことに尽きます。記述の設問は「思い出せそうで思い出せない」状態が起きやすく、そこで粘ると時間だけが減っていきます。確信のあるものから片づけ、残った時間を記述の設問に回すほうが、総得点は伸びやすくなります。

もうひとつ、入力の見直しに使う時間を最初から確保しておくことをおすすめします。半角と全角の取り違え、余分な空白、ピリオドやかっこの抜けといった失点は、内容を理解していても発生し、しかも見直せば取り返せる種類のものです。合格ラインが7割である以上、この取り返せる失点を潰しておく価値は大きいといえます。

上位科目のスタンダードとは、何が変わるのか

VBAエキスパートの Excel VBA には、ベーシックの上位にスタンダードが用意されています。公式の位置づけとしては、ベーシックがマクロとVBAの基礎、つまり基本文法の理解と基礎的なマクロの読み書きを対象とするのに対し、スタンダードはより実践的なマクロ作成のスキルを対象とする科目とされています。

ただし、両科目の出題範囲の差分や合格率の関係について、本記事で具体的な数字を挙げることはしません。科目ごとの出題範囲は公式サイトで公開・改訂されており、受験時点の正確な内容は一次情報にあたるのが確実だからです。ベーシック合格後に上位を目指す場合は、まず公式の出題範囲表を並べて、自分にとって未知の項目がどれだけあるかを数えるところから始めるのが現実的です。

一点だけ、順序については言えることがあります。ベーシックで扱う変数・オブジェクト式・制御構文は、上位科目でも土台としてそのまま使われる要素です。ベーシックの段階で綴りまで含めて手が動く状態にしておけば、次の段階では新しい機能の習得だけに集中できます。逆にここを曖昧にしたまま先へ進むと、後から二重に覚え直すことになりがちです。

MOS や基本情報技術者試験と、測っているものがどう違うか

比較対象としてよく並べられるのが、同じオデッセイ コミュニケーションズが実施する MOS(マイクロソフト オフィス スペシャリスト)と、情報処理推進機構が実施する国家試験の基本情報技術者試験です。どちらが上か下かという話ではなく、そもそも測っているものが違います。

MOS は Excel などのアプリケーションを操作するスキルを対象とし、実際にソフトを操作する形式で出題されます。ワークシート関数の使い方やグラフの作成といった、画面上の作業に対応する能力です。これに対して VBAエキスパートは、その作業を自動化するコードを書けるかどうかを見ます。同じ Excel を扱っていても、操作の試験とプログラミングの試験という違いがあり、片方ができればもう片方も自動的にできる、という関係にはありません。

基本情報技術者試験は情報処理技術者試験の一区分で、アルゴリズムやデータ構造、ネットワーク、セキュリティ、マネジメントまで、情報技術の基礎を広く扱う国家試験です。特定の製品に依存しない普遍的な知識が中心で、範囲の広さも試験時間も VBAエキスパートとは大きく異なります。Excel業務の自動化という具体的な目的があるなら Excel VBA ベーシック、IT全般の基礎を体系的に押さえたいなら基本情報技術者試験、という選び分けが素直です。目的が違うだけで、優劣を比べる関係ではありません。

330問を、到達度の物差しとして使う

最後に、本サイトの収録問題の使い方を提案します。合格率約80%の試験で必要なのは、新しい知識を延々と足していくことではなく、自分がどこで落ちるのかを早めに見つけることです。330問という量は、その用途に向いています。試験内容は Office 2010から2016のバージョンに対応しており、特定のバージョンに依存する問題は出題されないとされているため、手元の環境を気にせず学習を進められます。

おすすめは、学習の初日に分野を絞らず一通り解いてしまうことです。正答率が低い分野が、そのまま先ほど述べた「実務で触れていない領域」に対応しているはずです。合格ラインが7割であることを踏まえると、分野別の正答率が7割を大きく下回るものが一つでもあれば、そこが本番での失点源になる可能性が高いと考えられます。学習時間はその分野に優先して配分してください。

二周目からは、選択肢を見ずに答えを言えるかどうかを自分で試してみてください。四択で正解できることと、記述式で書けることの差は、この試験では最後まで残る差です。画面の選択肢を隠し、綴りを含めて頭の中で組み立ててから答え合わせをする。この一手間が、合格率約80%の内側に確実に入るための、もっとも地味で確実な準備になります。

なお、本記事に記載した試験制度に関する数値は、公開時点で公式サイトに掲載されている内容にもとづいています。受験料や合格基準、出題範囲は改訂されることがありますので、申し込みの前に必ず公式サイトで最新の情報をご確認ください。

実際に問題を解いて知識を定着させよう

ケンテイラボではVBAエキスパート Excel VBA ベーシックの問題を無料で練習できます。

問題を解く →
← 記事一覧へ戻る