「駅に着いたとき、電車はもう出発していた」
この「もう出発していた」を、英語ではどう表すでしょうか。
The train had already left when I got to the station.
「私が駅に着いたとき、電車はすでに出発していました」
どちらも過去の出来事ですが、電車が出発したのが先で、駅に着いたのが後です。had leftを使うと、到着した時点では出発が済んでいたことを伝えられます。
これが今回学ぶ「過去完了」です。形を覚えるだけでなく、出来事の順番を思い浮かべながら読んでみてください。
こんにちは。英語講師のTaka先生・根岸貴規です。私は日本国内で教科書の音読を中心に英語を身につけ、その英語を使って外資系投資銀行で約20年間働いてきました。英検1級・TOEIC980点を取得し、これまで累計14,000人以上の方に英語学習を指導してきました。ストアカでは、2022年から2025年まで4年連続で「最多受講者賞」を、2025年には「ストアカン・オブ・ザ・イヤー」をいただきました。
今回は、英検準2級の英文法を学ぶ全23回の第2回です。前回の「現在完了進行形」を復習したい方は、こちらをご覧ください。
目次
■ 過去形との違い|「昔の出来事なら、過去完了を使うの?」
過去完了は、「ずっと昔のこと」を表すための形ではありません。
I visited Kyoto last year.
「私は去年、京都を訪れました」
去年の出来事を伝えるなら、この過去形で十分です。何年前の話かによって、過去形と過去完了を使い分けるわけではありません。
過去完了では、過去のある時点を基準にして、それまでに起きたことや続いていた状態を振り返ります。
冒頭の電車の例なら、基準は「私が駅に着いたとき」です。出来事を順番に並べると、こうなります。
① 電車が出発した。
② 私が駅に着いた。
先に済んでいた出発をhad left、基準となる到着をgotという過去形で表しています。
「過去のいつを基準にしているのか」
「そこまでに、何が起きていたのか」
この二つを確認すると、過去完了を使う理由が見えてきます。基準となる時点は、同じ文の中に書かれていることもあれば、前の文や会話の流れから分かることもあります。
■ 基本の形|「hadの後ろには、何を置くの?」
過去完了の基本形は、次のとおりです。
主語 + had + 過去分詞
I had finished my homework before dinner.
「私は夕食の前に宿題を終えていました」
She had finished her homework before dinner.
「彼女は夕食の前に宿題を終えていました」
現在完了では、主語に合わせてhaveとhasを使い分けます。過去完了は、IでもSheでもhadです。主語によって変わりません。
このhadは、過去完了を作る助動詞です。「持っていた」とは訳さず、後ろの過去分詞と合わせて意味を捉えます。
気をつけたいのは、hadの後ろに置く動詞の形です。
finishは、過去形も過去分詞もfinishedです。しかし、不規則動詞には、次のように形が違うものがあります。
・go → went → gone
・see → saw → seen
・eat → ate → eaten
・leave → left → left
左から「原形・過去形・過去分詞」の順です。
× I had went to bed when Ken called.
○ I had gone to bed when Ken called.
「ケンから電話があったとき、私はすでにベッドに入っていました」
goの過去形はwentですが、過去分詞はgoneです。過去完了を作るときは、hadの後ろを過去分詞にします。
go to bedは「寝るためにベッドに入る」という意味です。この文では、電話があった時点ですでにベッドに入っていたことを伝えています。
■ 現在完了との違い|「haveをhadに変えると、意味も変わるの?」
現在完了は、今を基準に「今までに起きたことや、今まで続いていること」を伝えます。
過去完了は、過去のある時点を基準に「その時点までに起きたことや、続いていたこと」を伝えます。
同じ「宿題を終える」という内容で比べてみましょう。
I have already finished my homework.
「私はもう宿題を終えています」
今の時点で、宿題が終わっています。
I had already finished my homework when my mother came home.
「母が帰宅したとき、私はすでに宿題を終えていました」
こちらは、母が帰宅した時点で、宿題が終わっていたという話です。
have finishedとhad finishedの違いは、「いつまでのことを振り返っているか」です。「今まで」なのか、「過去のそのときまで」なのかを確かめてください。
現在完了の使い方を整理し直したい方は、こちらの記事も参考にしてください。
■ 三つの使い方|「完了・経験・継続は、どう表すの?」
① 完了・結果|そのときまでに終わっていた、そうなっていた
I had already eaten breakfast when Ken called.
「ケンから電話があったとき、私はすでに朝食を食べ終えていました」
電話があった時点で、朝食は済んでいました。alreadyは「すでに」という意味です。
それ以前の出来事が、そのときの状況につながっている場合もあります。
I couldn't open the door because I had lost my key.
「私は鍵をなくしていたので、ドアを開けられませんでした」
鍵をなくしたのが先で、その結果、ドアを開けられませんでした。今も鍵が見つかっていないかどうかまでは、この文だけでは分かりません。
② 経験|そのときまでに、したことがあった・なかった
I had never seen snow before I moved to Hokkaido.
「私は北海道に引っ越すまで、雪を見たことが一度もありませんでした」
北海道に引っ越すまでの経験を振り返っています。neverは「一度も〜ない」という意味です。
③ 継続|そのときまで、ある状態が続いていた
I had known Ken for five years when we started working together.
「一緒に働き始めたときには、ケンと知り合って5年がたっていました」
knownはknowの過去分詞です。「ケンを知っている」という状態が、働き始めた時点まで5年間続いていました。
for five yearsは「5年間」。期間を表すforを使って、どのくらい続いていたかを伝えています。
ここで、「過去完了だから、その状態は終わった」と考えないでください。働き始めた後も、ケンとの付き合いが続いていてかまいません。この文が述べているのは、働き始めた時点までの付き合いの長さです。
■ 時間を表す言葉|「when・before・byは、どう使うの?」
① whenは「〜したとき」
I had finished my homework when my mother came home.
「母が帰宅したとき、私は宿題を終えていました」
when my mother came homeが、基準になる時点を示しています。
文の順番を変えても、出来事の順番は変わりません。
When my mother came home, I had finished my homework.
「母が帰宅したとき、私は宿題を終えていました」
どちらも、宿題を終えたのが先です。英文の先頭に書かれた出来事から順に起きた、と読まないようにしましょう。
② beforeは「〜する前に」
I had finished my homework before I watched TV.
「私はテレビを見る前に、宿題を終えていました」
宿題を終えた後で、テレビを見ています。
ただし、先に起きた出来事を、必ず過去完了にするわけではありません。
I finished my homework before I watched TV.
「私はテレビを見る前に、宿題を終えました」
この文も正しい英文です。beforeがあるので、二つとも過去形でも順番が分かります。
過去完了を使うと、後の時点から振り返って「その前に済んでいた」と伝えられます。過去形との使い分けでは、出来事の順番に加えて、どの時点から話しているかにも目を向けてください。
③ byは「〜までに」
I had finished my homework by eight last night.
「私は昨夜8時までに、宿題を終えていました」
8時の時点では、宿題が終わっていたという意味です。ちょうど8時に終えた、とは限りません。
at eightは「8時に」、by eightは「8時までに」。前置詞の違いも、意味を確かめながら覚えましょう。
また、by the timeの後ろに文を続けることもできます。
I had finished my homework by the time my mother came home.
「母が帰宅するまでには、私は宿題を終えていました」
ここでは、時刻の代わりに「母が帰宅する」という出来事を使って、いつまでに済んでいたかを伝えています。
■ 否定文と疑問文|「notやHadは、どこに置くの?」
否定文は、hadの後ろにnotを入れます。
主語 + had not + 過去分詞
I had not finished my homework when Ken called.
「ケンから電話があったとき、私は宿題を終えていませんでした」
had notは、hadn'tと短くできます。
I hadn't finished my homework when Ken called.
「ケンから電話があったとき、私は宿題を終えていませんでした」
疑問文では、hadを主語の前に出します。
Had + 主語 + 過去分詞 + …?
Had you finished your homework when Ken called?
「ケンから電話があったとき、あなたは宿題を終えていましたか?」
答えるときも、hadを使います。
Yes, I had.
「はい、終えていました」
No, I hadn't.
「いいえ、終えていませんでした」
相手からyouについて聞かれているので、自分のことを答えるときはIです。
過去完了の否定文・疑問文では、didを加えません。
× Did you had finished your homework?
○ Had you finished your homework?
「あなたは宿題を終えていましたか?」
否定文ならhadの後ろにnot、疑問文ならhadを主語の前へ。過去分詞のfinishedは、そのままです。
■ 確認問題|「形と出来事の順番を確かめよう」
次の8問に取り組んでください。この記事の学習用に作成した問題です。
① 正しい語を選んでください。
I(have/has/had)already finished my homework when my mother came home.
「母が帰宅したとき、私はすでに宿題を終えていました」
② 間違っている語を直してください。
I had went to bed before my father came home.
「父が帰宅する前に、私はベッドに入っていました」
③ 先に起きたのは、ア・イのどちらですか?
The movie had already started when we arrived at the theater.
「私たちが映画館に着いたとき、映画はすでに始まっていました」
ア:私たちが映画館に着いた。
イ:映画が始まった。
④ 次の文を否定文にしてください。
Tom had cleaned his room before lunch.
「トムは昼食の前に、自分の部屋の掃除を済ませていました」
⑤ 次の語句を並べ替えてください。文頭を大文字にし、文末に「?」を付けてください。
(you/had/snow/seen/before you moved to Hokkaido)
「北海道に引っ越す前に、あなたは雪を見たことがありましたか?」
⑥ 質問に「はい」と答える文の空欄に、2語を入れてください。
Had you finished your homework when Ken called?
「ケンから電話があったとき、あなたは宿題を終えていましたか?」
Yes,( )( ).
「はい、終えていました」
⑦ 正しい語を選んでください。
I had known Ken(for/since)five years when we started working together.
「一緒に働き始めたときには、ケンと知り合って5年がたっていました」
⑧ 日本語の「7時までに」に合う語を選んでください。
We had finished dinner(at/by)seven last night.
「私たちは昨夜7時までに、夕食を食べ終えていました」
■ 解答と解説|「その答えになる理由は?」
① had
I had already finished my homework when my mother came home.
「母が帰宅したとき、私はすでに宿題を終えていました」
母が帰宅した時点では、宿題が終わっていました。今までのことを表すhave finishedではなく、had finishedを使います。
② went → gone
I had gone to bed before my father came home.
「父が帰宅する前に、私はベッドに入っていました」
goの過去形はwent、過去分詞はgoneです。hadの後ろには、過去分詞を置きます。
③ イ:映画が始まった
The movie had already started when we arrived at the theater.
「私たちが映画館に着いたとき、映画はすでに始まっていました」
映画が始まったのが先で、私たちが到着したのが後です。had already startedが、到着時にはすでに始まっていたことを表します。
④ hadの後ろにnotを入れる
Tom had not cleaned his room before lunch.
「トムは昼食の前に、自分の部屋の掃除を済ませていませんでした」
hadn'tを使っても正解です。主語がTomになっても、hadの後ろにnotを置く形は変わりません。
⑤ Hadを主語の前に置く
Had you seen snow before you moved to Hokkaido?
「北海道に引っ越す前に、あなたは雪を見たことがありましたか?」
Had + you + seenの順です。before you moved to Hokkaidoは、ひとまとまりとして後ろに続けます。
⑥ I had
Yes, I had.
「はい、終えていました」
自分について答えるのでIを使い、質問のHadに合わせてhadで答えます。
⑦ for
I had known Ken for five years when we started working together.
「一緒に働き始めたときには、ケンと知り合って5年がたっていました」
five yearsは「5年間」という期間なので、forです。sinceは、始まった時点を表すときに使います。
⑧ by
We had finished dinner by seven last night.
「私たちは昨夜7時までに、夕食を食べ終えていました」
「7時までに」はby sevenです。at sevenでは「7時に」となります。
答え合わせの後は、間違えた理由を確かめてください。出来事の順番を読み違えたのか、過去分詞を覚えていなかったのか。それによって、戻って練習するところが変わります。
■ 今日の練習|「自分の出来事を、過去完了で伝えよう」
最後に、次の一文で練習しましょう。
I had already eaten dinner when Ken called.
「ケンから電話があったとき、私はすでに夕食を食べ終えていました」
まず、夕食を食べ終えたのが先で、電話があったのが後だと確認します。eatの過去分詞がeatenであることも押さえてください。
意味が分かったら、その場面を思い浮かべながら、同じ英文を繰り返し音読します。発音が分からない単語は、辞書や教材の音声で確かめましょう。
次に英文を隠し、日本語だけを見て言ってみます。言えたら、何も見ずに書いてください。hadを抜かしていないか、eatenをateにしていないかを確認します。
慣れてきたら、自分の出来事に置き換えてみましょう。
家族が帰宅したとき、授業が始まったとき、友達から電話があったとき。その時点ですでに済んでいたことを、一つ選んで英文にしてください。
私が大切にしているのは、「分かる」「できる」「忘れない」の3段階です。解説を読んで分かったら、自分で言える・書けるまで練習し、その後も繰り返して覚えておきます。
一度練習した文は、次のスキマ時間に、もう一度何も見ずに言ってみてください。翌日にも同じ文を思い出せるか、確かめましょう。
答えを見るだけで終わらせず、自分で使えるように練習する方法は、こちらの記事でも紹介しています。
過去完了は、過去の出来事を順序立てて話すときに役立ちます。「あのときには、もう済んでいた」という経験を一つ、今日の例文を使って伝えてみてください。
次回、第3回では「未来完了」を取り上げます。「明日のこの時間までには終わっている」のように、未来のある時点までに完了していることを、will have+過去分詞で表す練習をします。
■ 参考資料
British Council LearnEnglish:Past perfect
Cambridge Dictionary:Past perfect simple
根岸貴規
1人でも多くの英語学習者のお役に立てるような情報を発信しています。英語をもっと頑張りたい方、頑張っているのになかなか続かない方は、ぜひ他の投稿も参考にしてみてください。