モチタン辞典 › 読みもの › 英文法 › 過去完了形の練習問題演習

過去完了形練習問題30問と詳しい解説
過去完了形は「had + 過去分詞」で表し、過去のある特定の基準点において、それ以前から続いていた状態や完了した動作、あるいはさらに古い過去の事実(大過去)を示します。
過去形単体との決定的な違いは文中に「過去の基準点」が存在することであり、when や before、by the time といった接続詞や時を表す語句を手がかりに時間軸を整理することで、正確に見分けることができます。
過去完了形の基本構造と時間軸の整理
過去完了形をマスターするための土台は、基本公式の定着と時間軸(タイムライン)の把握です。現在完了形が「現在」を基準にして動作や状態を捉えるのに対し、過去完了形は「過去のある一地点」を基準にして、それよりも前に起きた事象を捉えます。
過去完了形の文構造
- 肯定文:主語 + had + 過去分詞
- 否定文:主語 + had not(hadn't) + 過去分詞
- 疑問文:Had + 主語 + 過去分詞 …?
主語が三人称単数であっても has ではなく常に had を用いるため、主語による助動詞の変化はありません。その分、不規則動詞の過去分詞形の正確な綴りが重要になります。
時間軸(タイムライン)で見る大過去と基準点
過去完了形を理解する上で不可欠なのが、基準となる過去とそれ以前の時間の前後関係です。
- 【大過去(過去完了)】←←← 【過去の基準点】←←← 【現在】
- 大過去:The train had already left(電車はすでに出発してしまっていた)
- 過去の基準点:when I arrived at the station(私が駅に着いたとき)
駅に到着した時点が「過去」であり、電車が出発したのはその時点よりもさらに前の「大過去」です。このように、過去の基準点よりも前に起きた出来事を明確に表現するために過去完了形を用います。
過去完了形の4つの用法一覧
表は横にスクロールできます →
| 用法 | 意味 | よく使われるシグナルワード | 例文 |
|---|---|---|---|
| 完了・結果 | (過去の基準点までに)〜してしまっていた | already, just, yet | I had already finished dinner when he called.(彼が電話してきたとき、私はすでに夕食を終えていた。) |
| 経験 | (過去の基準点までに)〜したことがあった | before, ever, never, twice | She had never seen snow before she moved to Hokkaido.(北海道に引っ越す前、彼女は一度も雪を見たことがなかった。) |
| 継続 | (過去の基準点まで)ずっと〜していた | for, since, how long | They had lived there for ten years when the house burned down.(その家が全焼したとき、彼らはそこに10年間住んでいた。) |
| 大過去 | (過去の基準点よりも前に)〜した | before, when, 関係代名詞節など | I lost the watch that my father had bought for me.(父が買ってくれた時計を私はなくしてしまった。) |
過去の基準点よりも前に起きた事象(大過去)を表す時間関係です。
第1部:基礎の空所補充問題10問
まずは「had + 過去分詞」の形を正しく作れるか確認する基礎問題です。括弧内の動詞を適切な形に直してください。否定文や疑問文、不規則動詞の活用ミスに注意して解き進めましょう。
問題(第1部:空所補充)
- When I woke up, the rain ( stop ).
- Ken ( not see ) a panda before he visited the zoo yesterday.
- ( you / finish ) the report when the manager asked for it?
- The bus ( already / leave ) by the time we reached the bus stop.
- She realized that she ( leave ) her umbrella in the restaurant.
- They ( know ) each other for five years when they decided to get married.
- I was hungry because I ( not eat ) breakfast that morning.
- The movie ( already / start ) when we entered the theater.
- ( he / ever / be ) to Kyoto before he went there on the school trip?
- He found the wallet that he ( lose ) three days before.
解答と解説(第1部)
- 正解:had stopped
日本語訳:私が目を覚ましたとき、雨は止んでいた。
解説:過去の基準点は「私が目を覚ました(woke up)」です。雨が止んだのはそれ以前の出来事であるため過去完了形にします。stop の過去分詞は p を重ねて stopped とします。 - 正解:had not seen(hadn't seen)
日本語訳:昨日動物園を訪れる前、ケンはパンダを見たことがなかった。
解説:過去の基準点は「動物園を訪れた(visited)」です。それ以前の経験の否定を表すため had not + 過去分詞 とします。see - saw - seen の活用を確認してください。 - 正解:Had you finished
日本語訳:部長が求めたとき、あなたはその報告書を書き終えていましたか。
解説:過去の基準点は「部長が求めた(asked)」です。疑問文なので Had を主語の前に出します。 - 正解:had already left
日本語訳:私たちがバス停に着いたときには、バスはすでに出発してしまっていた。
解説:過去の基準点は「着いた(reached)」です。already は助動詞 had と過去分詞 left の間に置きます。leave - left - left です。 - 正解:had left
日本語訳:彼女はレストランに傘を忘れてきたことに気がついた。
解説:気がついた(realized)のが過去の基準点であり、傘を置き忘れたのはそれより前の動作(大過去)です。 - 正解:had known
日本語訳:彼らが結婚を決めたとき、知り合ってから5年が経っていた。
解説:基準点は「結婚を決めた(decided)」です。それ以前から5年間続いていた状態(継続)を表すため had known とします。know - knew - known です。 - 正解:had not eaten(hadn't eaten)
日本語訳:その日の朝に朝食を食べていなかったため、私は空腹だった。
解説:基準点は「空腹だった(was)」という過去の状態です。朝食を食べなかったのはそれ以前の出来事です。eat - ate - eaten です。 - 正解:had already started
日本語訳:私たちが映画館に入ったとき、映画はすでに始まっていた。
解説:基準点は「入った(entered)」です。映画が始まったのはそれより前です。 - 正解:Had he ever been
日本語訳:修学旅行で行く前、彼は京都に行ったことがありましたか。
解説:基準点は「行った(went)」です。それ以前の経験を尋ねる疑問文です。「〜へ行ったことがある」は have been to の形を用いるため、Had he ever been to となります。 - 正解:had lost
日本語訳:彼は3日前になくした財布を見つけた。
解説:基準点は「見つけた(found)」です。財布をなくしたのはそれ以前の大過去の出来事なので had lost を用います。lose - lost - lost です。
英語の文法は、話して身につけよう。会話アプリ「モチスピ」英語を話して練習できる会話アプリ。話すたびに、発音・文法・自然さをその場で直してもらえます。無料で試す
第2部:4つの用法を判別する練習問題10問
過去完了形には「大過去」「完了・結果」「経験」「継続」の4つの用法があります。文中のキーワードや文脈から、次の下線部の過去完了形がどの用法に該当するかを答えてください。
問題(第2部:用法判別)
- I had just finished my homework when my mother came home.
- She told me that she had lived in London for three years before coming to Japan.
- He had never spoken to a foreigner until he entered university.
- When we arrived at the stadium, the soccer game had already begun.
- Mary returned the book she had borrowed from the library.
- I recognized him at once because I had met him twice before.
- The ground was wet because it had rained for three hours.
- He couldn't find the key he had put on the desk.
- Had you ever played tennis before you joined this club?
- The train had not arrived yet when I checked the timetable.
解答と解説(第2部)
- 正解:完了・結果
日本語訳:母が帰宅したとき、私はちょうど宿題を終えたところだった。
解説:just(ちょうど〜したところ)が使われており、母が帰宅したという過去の基準点において動作が完了したことを示しています。 - 正解:継続
日本語訳:日本に来る前、ロンドンに3年間住んでいたと彼女は私に言った。
解説:for three years(3年間)という期間を表す表現があり、来日する過去の基準点まで状態が続いていたことを示しています。 - 正解:経験
日本語訳:大学に入るまで、彼は一度も外国人と話したことがなかった。
解説:never(一度も〜ない)や until(〜まで)が使われており、大学入学という過去の基準点までの経験の有無を述べています。 - 正解:完了・結果
日本語訳:私たちがスタジアムに到着したとき、サッカーの試合はすでに始まっていた。
解説:already(すでに)を伴い、到着した時点で試合開始の動作が完了していたことを示します。 - 正解:大過去
日本語訳:メアリーは図書館から借りていた本を返却した。
解説:本を返却した(returned)という過去の動作よりも前に、本を借りた(had borrowed)という単純な出来事の先後関係を示す大過去の用法です。 - 正解:経験
日本語訳:以前に2度会ったことがあったので、私はすぐに彼だと分かった。
解説:twice before(以前に2度)という回数を表す語句があり、彼を認識した時点より前の経験を示しています。 - 正解:継続
日本語訳:3時間雨が降り続いていたため、地面は濡れていた。
解説:地面が濡れていた(was wet)という過去の基準点まで、3時間にわたって雨が降り続いていた動作の継続を表しています。 - 正解:大過去
日本語訳:彼は机の上に置いた鍵を見つけることができなかった。
解説:鍵を探せなかった(couldn't find)時点より前に、鍵を置いた(had put)事実を表す大過去です。 - 正解:経験
日本語訳:このクラブに入る前、テニスをしたことがありましたか。
解説:ever(今までに)と before(以前に)が使われており、クラブ加入という過去の時点までの経験を問うています。 - 正解:完了・結果
日本語訳:時刻表を確認したとき、電車はまだ到着していなかった。
解説:否定文で yet(まだ)が使われており、時刻表を確認した時点での動作の未完了を表しています。
完了・結果
- already
- just
- yet
経験
- before
- ever
- never
- twice
継続
- for three years
- until
大過去
- 過去の基準点以前の出来事
文中のキーワードや文脈から該当する用法を判別します。
具体的な文での使われ方をさらに確認したい方は、過去完了形の例文一覧をご覧ください。
第3部:過去形・現在完了形との時制識別問題10問
入試や定期テストで最も点数差がつきやすいのが、過去形・現在完了形・過去完了形の3つの時制を見分ける問題です。文脈から「基準となる時点が現在なのか過去なのか」「前後の時系列がどうなっているか」を見極めて最も適切な選択肢を選んでください。
問題(第3部:時制識別)
- I ( have lost / lost / had lost ) my phone yesterday, so I bought a new one today.
- When I visited Tom's house, he ( has / had / has had ) already gone out.
- She ( has taught / taught / had taught ) English at this school since 2020 and still teaches here now.
- By the time the doctor arrived, the patient ( died / has died / had died ).
- We ( lived / have lived / had lived ) in Kyoto for three years before we moved to Tokyo last year.
- Look at this clean room! Ken ( cleaned / has cleaned / had cleaned ) it.
- I could not buy the ticket because I ( forgot / have forgotten / had forgotten ) my wallet.
- My father ( worked / has worked / had worked ) for that company from 2010 to 2018.
- She told me that she ( met / has met / had met ) the famous singer the day before.
- How many times ( did you visit / have you visited / had you visited ) Okinawa so far?
解答と解説(第3部)
- 正解:lost
日本語訳:私は昨日携帯電話をなくしたので、今日新しいものを買った。
解説:yesterday(昨日)という明確な過去の一地点を表す副詞があるため、単純な過去形 lost を用います。現在完了形は過去の確定日付と一緒に使えず、基準となる過去の出来事もないため過去完了形も不可です。 - 正解:had
日本語訳:私がトムの家を訪ねたとき、彼はすでに出かけてしまっていた。
解説:基準点は「訪ねた(visited)」という過去です。トムがいなくなったのはその基準点より前なので、過去完了形の had gone にする必要があります。空所には had が入ります。 - 正解:has taught
日本語訳:彼女は2020年からこの学校で英語を教えており、今も教えている。
解説:「今も教えている(still teaches here now)」とあるため、過去から現在に至るまでの継続を表す現在完了形 has taught が正解です。基準点が現在にあります。 - 正解:had died
日本語訳:医師が到着したときには、その患者はすでに亡くなっていた。
解説:By the time + 過去形(〜したときまでには)は、過去完了形を導く典型的な表現です。医師が到着した(arrived)時点で、すでにそれ以前に亡くなっていた動作の完了を示します。 - 正解:had lived
日本語訳:昨年東京に引っ越す前、私たちは京都に3年間住んでいた。
解説:東京に引っ越した(moved)のが過去の基準点です。それ以前の3年間の継続を表すため、過去完了形 had lived を選択します。 - 正解:has cleaned
日本語訳:このきれいな部屋を見て!ケンが掃除したんだよ。
解説:Look at this clean room! と現在呼びかけており、過去の掃除の結果として「今部屋がきれいである」という現在の状態に影響を及ぼしています。したがって現在完了形 has cleaned が適切です。 - 正解:had forgotten
日本語訳:財布を忘れてきてしまったため、私はチケットを買うことができなかった。
解説:チケットを買えなかった(could not buy)のが過去の基準点です。財布を忘れたのはその基準点より前の出来事(原因)であるため、大過去を表す過去完了形 had forgotten にします。 - 正解:worked
日本語訳:私の父は2010年から2018年までその会社で働いていた。
解説:2010年から2018年という過去の完結した期間について述べており、現在の状態や別の過去の時点とは結びついていません。過去の単なる事実を表すため過去形 worked を用います。 - 正解:had met
日本語訳:彼女は前日にその有名な歌手に会ったと私に話した。
解説:彼女が話した(told)のが過去の基準点です。歌手に会ったのはその話をした時点より前の出来事(the day before=前日)であるため、過去完了形 had met を用います。時制の一致の観点からも過去完了になります。 - 正解:have you visited
日本語訳:これまでに何回沖縄を訪れたことがありますか。
解説:so far(これまでのところ、今までに)は現在までの経験を尋ねる表現です。基準点が現在にあるため、現在完了形 have you visited が正解です。

2つの時制の判別に迷う場合は、過去形と現在完了形の違いと使い分けで整理できます。
試験で迷いやすい重要ルールと注意点
過去完了形の実戦問題では、文法的な例外ルールやスペルの間違いを狙った引っ掛け問題が頻出します。失点を防ぐために重要なポイントを2点確認しておきましょう。
1. before や after がある場合の過去形の代用
接続詞 before(〜の前に)や after(〜の後に)を用いる文では、接続詞そのものが出来事の前後関係を明白に示しているため、大過去の過去完了形を使わずに過去形で代用することが認められています。
どちらも文法的に正しく、現代英語では過去形で簡潔に表現されるケースも多く見られます。ただし、学校の定期テストや文法問題で「時制の違いを厳密に示すこと」が求められている場面では、原則通り過去完了形を用いるのが確実です。
2. 間違えやすい不規則動詞の過去分詞形
過去完了形では動詞の過去分詞形を作らなければなりませんが、過去形と過去分詞形が異なる動詞や、スペルが変わりやすい動詞で誤答が多発します。
表は横にスクロールできます →
| 原形 | 過去形 | 過去分詞形 | 注意点 |
|---|---|---|---|
| forget | forgot | forgotten | t を重ねる点に注意(forgot と書かない) |
| see | saw | seen | 過去形の saw をそのまま使ってしまうミスに注意 |
| lose | lost | lost | loose(緩い)や loosed と混同しない |
| leave | left | left | 過去形・過去分詞同形だが意味は「出発する」「残す」 |
| fall | fell | fallen | feel - felt - felt(感じる)との混同に注意 |
標準的な文(過去完了形)
- He had eaten dinner before I arrived.
- 大過去であることを厳密に示す
- 定期テストや文法問題で確実
代用した文(過去形)
- He ate dinner before I arrived.
- 接続詞が前後関係を示すため成立
- 現代英語で簡潔に表現される例
接続詞が前後関係を示す場合、過去完了形の代わりに過去形を使えます。
代用ルールや時系列の捉え方は、過去完了と過去形の違いでも詳しく解説しています。
時制の一致を受けない例外と使い分け
出来事の前後関係や文の内容によっては、過去完了形を使わずに過去形や現在形を選択する例外的なルールが存在します。
| 状況・条件 | 使うべき時制 | 理由と例文 |
|---|---|---|
| and や then で出来事が起きた順に並ぶ場合 | すべて過去形 | 時間軸の通りに記述されるため。 He opened the door, entered the room, and sat down.(ドアを開け、部屋に入り、着席した。) |
| 普遍の真理・科学的事実 | 現在形 | 時制の一致を受けないため。 Tom said that the earth moves around the sun.(トムは、地球は太陽の周りを回っていると言った。) |
| 歴史的事実 | 過去形 | 時制の一致を受けないため。 She learned that World War II ended in 1945.(第二次世界大戦が1945年に終わったと習った。) |
なお、before や after を伴う文は日常表現では過去形で代用されますが、定期テストや入試で「完了形を用いて」などの指定がある場合は、指示に従って had + 過去分詞 を選ぶ必要があります。
過去完了形でよくある3大誤答パターン
過去完了形の実戦問題で失点しやすいパターンは、文法の勘違いと動詞変化のミスに集中しています。
1. have と had の混同
基準となる動詞が過去形であるにもかかわらず、現在完了形を書いてしまう誤りです。
【誤】When I met him, he has already graduated from college.
【正】When I met him, he had already graduated from college.(私が彼に会ったとき、彼はすでに大学を卒業していた。)
2. 過去の習慣を過去完了形にする誤り
「昔のことだから」と何でも過去完了形にしてしまうケースです。過去の反復的な習慣や単なる過去の事実は過去形を用います。
【誤】When I was a child, I had often played soccer.
【正】When I was a child, I often played soccer.(子どものころ、私はよくサッカーをしたものだ。)
3. 過去分詞の不規則変化のスペルミス
過去分詞の綴り間違いによる減点にも注意が必要です。以下の頻出動詞の変化を正確に覚えておきましょう。
- lose → lost(loosed は誤り)
- choose → chosen(chose は過去形)
- fall → fallen(fell は過去形)
- begin → begun(began は過去形)
- see → seen(saw は過去形)
理解度チェック
Q1. 過去完了形の肯定文の基本構造として正しいものはどれ?
- 主語 + has + 過去分詞
- 主語 + had + 過去分詞
- 主語 + had + 原形動詞
- 主語 + did + 過去分詞
答えを見る
正解: B. 主語 + had + 過去分詞
本文では、過去完了形の肯定文は「主語 + had + 過去分詞」と説明されています。主語が三人称単数でも常にhadを用います。
Q2. 空所に「had」が入る適切な英文はどれ?
- When I woke up, the rain ( ) stopped.
- I ( ) my phone yesterday.
- She ( ) English here since 2020.
- Look! Ken ( ) cleaned the room.
答えを見る
正解: A. When I woke up, the rain ( ) stopped.
過去の基準点「woke up」より前に雨が止んでいたため、過去完了形「had stopped」にします。他は過去形や現在完了形です。
Q3. beforeやafterがある文での時制ルールは?
- 未来完了形で代用できる
- 必ず現在完了形を用いなければならない
- 前後関係が明白なため過去形で代用できる
- 進行形にしなければならない
答えを見る
正解: C. 前後関係が明白なため過去形で代用できる
beforeやafter自体が前後関係を明白に示すため、大過去の過去完了形を使わずに過去形で代用することが認められています。
よくある質問
- Q. 大過去と過去完了形の違いは何ですか?
- 大過去は「過去のある基準点より前に起きたこと」という時間の前後関係そのものを指し、過去完了形はその大過去を表現するために用いられる文法形式(had + 過去分詞)の名前です。
- Q. 過去完了形を過去形で代用できる条件は?
- before や after、as soon as のように、前後の時間関係が接続詞の意味から誰の目にも明らかな場合は、過去完了形の代わりに過去形を用いても意味が通じます。
- Q. by the time と when の使い分けは?
- by the time は「〜する時までには(すでに)」という完了の期限を表し過去完了形と強く結びつきます。when は単に「〜した時」という同時点やきっかけを表します。
- Q. have had や had had という形は正しい?
- 正しい形です。have(持つ、食べるなど)の過去分詞は had なので、助動詞の had と組み合わせて had had(持っていた、食べた)という過去完了形を作ることができます。
- Q. 過去完了進行形とは何が違いますか?
- 過去完了進行形(had been + -ing)は、過去の基準点まで「動作がずっと続いていたこと」を強調する形です。状態を表す動詞ではなく動作動詞とともに用います。
2026年10月8日更新・モチタン辞典編集部