第2章 時制

完了形のバリエーション
─ 過去完了・未来完了・完了進行形の世界

現在完了形が「過去から現在への架け橋」なら、過去完了形は「さらに過去からある過去の時点への架け橋」、未来完了形は「現在から未来のある時点への架け橋」です。
さらに、完了形と進行形を組み合わせた完了進行形は「ずっとし続けている」という臨場感を加えます。
どの形にも共通するのは「ある時点までに」という矢印の意識。この感覚を軸に、完了形のバリエーションを一気にマスターしましょう。

1過去完了形 ─「ある過去の時点より、さらに前」

現在完了形が「過去から現在に向かってくる矢印」だったのに対し、過去完了形は「さらに過去からある過去の時点に向かってくる矢印」です。 焦点が「現在」から「過去のある時点」にスライドしただけで、完了形のもつ「ある時点までに」という意識はまったく同じです。

💡 ここが本質:過去完了 =「過去の中の、さらに過去」

現在完了形では「過去 → 現在」の流れを意識しました。過去完了形はこの焦点を過去に移し、「さらに前 → ある過去の時点」の流れを表します。

つまり過去完了形とは、ある過去の時点を基準にして、そこからさかのぼる意識です。「そのとき(過去)までに、すでに~していた」── それが過去完了形のコアイメージです。

現在完了形と同じく、完了・経験・継続の3つの用法があります。

📏 文法ルール:過去完了形

had + 過去分詞

「(ある過去の時点までに)~していた / ~したことがあった / ~し続けていた」

※ had は have の過去形。主語が何であっても常に had。
※ 短縮形:I had → I'd, She had → She'd, had not → hadn't
📝 例文で確認:過去完了形の3つの顔
By the time I arrived, the train had already left.
私が到着したときには、電車はすでに出発していた。(完了 ── 到着時点までに出発が完了)
I had never used a smartphone before I bought one this year.
今年買うまで、スマートフォンを使ったことがなかった。(経験 ── 購入時点までの経験ゼロ)
They had known each other for seven years before they got married.
彼らは結婚する前に7年間知り合いだった。(継続 ── 結婚時点までの7年間)

「大過去」── 時間の前後関係を明確にする

2つの過去の出来事を、実際に起きた順序と逆の順序で述べるとき、時間的に先に起きた方を過去完了形で表すことがあります。 この用法は「大過去」と呼ばれます。

📝 例文で確認:大過去
I knew the ending of the movie because I had read the book.
私は本を読んでいたから、映画のエンディングを知っていた。(「読んだ」は「知っていた」より前の出来事)
He read the report she had written the day before.
彼は、彼女が前日に書いた報告書を読んだ。(「書いた」は「読んだ」より前の出来事)
🧠 ネイティブの感覚:過去完了 =「時間の前後関係」を明示する道具

物語や会話では、出来事は必ずしも時系列どおりに語られるわけではありません。「昨日映画を見たんだけど、実はその前に原作を読んでいて……」のように、話の流れの中で時間が前後することはよくあります。

過去完了形は、このような場面で「こっちの方が先に起きたことだよ」と聞き手に明示するための道具です。「過去の時点がしっかり意識されていれば」過去完了形が自然に出てきます。

ただし、before や after など、文脈で前後関係が明らかな場合は、わざわざ過去完了形を使わなくてもOKです。

2未来完了形 ─「未来のある時点までには」

現在完了形の焦点を過去に移したのが過去完了形でした。では、焦点を未来に移したら? ── それが未来完了形です。未来のある時点を思い描き、「そのときまでにはこうなっているだろう」と予測する形です。

📏 文法ルール:未来完了形

will have + 過去分詞

「(未来のある時点までに)~しているだろう / ~したことになるだろう」

※ will(~だろう)+ have + 過去分詞(完了)のコンビネーション。
※ will の「予測」と完了形の「そのときまでに」が合体した形。
📝 例文で確認
I will have finished my homework by ten o'clock.
10時までには宿題を終えているだろう。(完了 ── 10時の時点で終わっている)
She will have arrived in Hawaii by the end of next March.
来年の3月末までにはハワイに到着しているだろう。(完了 ── 3月末の時点で到着済み)
By next year, we will have been married for twenty years.
来年で結婚して20年になる。(継続 ── 来年の時点で20年間続いている)
🔬 ワンポイント:by + 未来の時点 とセットで覚える

未来完了形は「by + 未来の時点」(~までには)とセットで使われることが非常に多いです。

by ten o'clock(10時までには)、by the end of next month(来月末までには)、by next year(来年までには)── これらの表現が出てきたら「未来完了形かも?」と考える癖をつけましょう。

入試では「by + 未来の時点」を含む英文の空所に will have + 過去分詞を入れさせる問題が頻出です。

完了形ファミリーの全体像

焦点となる時点 意味
現在完了 have/has + 過去分詞 現在 今までに~した
過去完了 had + 過去分詞 過去のある時点 そのときまでに~していた
未来完了 will have + 過去分詞 未来のある時点 そのときまでに~しているだろう

3つとも根っこは同じ。「ある時点までに」という矢印の意識が共通しています。 違うのは矢印の先が「現在」「過去」「未来」のどこを向いているか、それだけです。

3完了進行形 ─「ずっとし続けている」の臨場感

完了形(have done)は「ある時点までに」を表しました。進行形(be doing)は「まさに動作の最中」を表しました。 この2つを組み合わせると、「ある時点まで、ずっとある動作を続けている」という意味が生まれます。 それが完了進行形です。

📏 文法ルール:完了進行形

現在完了進行形:have/has been + -ing

過去完了進行形:had been + -ing

未来完了進行形:will have been + -ing

※ 完了形(have done)の done の部分を been + -ing に置き換えたもの。
※ 「(ある時点まで)ずっと~し続けている」── 動作の継続を臨場感をもって伝える。
🧠 ネイティブの感覚:完了 + 進行 =「ずっとやってるんだよ!」の気持ち

完了進行形は、完了形の「ある時点までに」と進行形の「活動の真っ最中」を合体させた形です。

単なる継続の事実を述べるだけでなく、「疲れた」「もうたくさん」「うんざり」「大変だった」── そうした感情が乗りやすい表現です。

たとえば "I've been waiting for an hour!" には、「1時間も待ち続けてるんだよ!(もう勘弁してくれ)」という気持ちが込められています。単に "I've waited for an hour." と言うよりも、動作のリアルな持続感がぐっと伝わるのです。

📝 例文で確認:完了進行形のバリエーション
I have been waiting for you for an hour!
1時間もあなたを待ち続けているんだよ!(現在完了進行形 ── 今もまだ待っている)
My mother has been shopping all day.
母は一日中ずっと買い物をしているんです。(現在完了進行形 ── 疲れ・呆れのニュアンス)
The volunteers had been working for three hours before they took a break.
ボランティアたちは休憩をとる前に3時間働き続けていた。(過去完了進行形)
He will have been working at the local hospital for 10 years by the end of next month.
来月末で彼は地元の病院に10年間勤務し続けていることになる。(未来完了進行形)
⚠️ 落とし穴:完了形(継続)と完了進行形の使い分け

「ずっと~している」を表すとき、完了形と完了進行形のどちらを使うかは、動詞の種類がカギになります。

状態動詞(know, live, like, have など)は原則として進行形にできないため、完了形(継続用法)をそのまま使います。

動作動詞(run, study, wait, work など)は完了進行形を使って動作の持続感を表します。

Mike and Bill have known each other since they were children.(know は状態動詞 → 完了形)

Mike and Bill have been knowing each other since ...(状態動詞は進行形にしない)

It has been snowing for four weeks now.(snow は動作動詞 → 完了進行形)

ただし live は状態動詞ですが例外的に進行形にもでき、I have lived here ... も I have been living here ... もどちらも使えます。

🔬 ワンポイント:完了形 vs 完了進行形 ── ニュアンスの違い

動作動詞でも完了形(継続)を使うことは可能ですが、完了進行形と比べるとニュアンスが異なります。

I've studied English for three years.(完了形)── 3年間勉強した、という事実を客観的に述べている。

I've been studying English for three years.(完了進行形)── 3年間ずっと勉強し続けている、という動作の持続感・臨場感がある。「今もまさに続いている」感覚が強い。

4つながりマップ

完了形のバリエーションを学んだら、関連するトピックへ進みましょう。

  • → G-2-5 現在完了形:過去完了形・未来完了形の土台となる「完了形の基本」を確認できます。現在完了形の感覚がしっかりしていれば、過去完了も未来完了も同じ原理で理解できます。
  • → G-2-7 時制の一致:過去完了形は「時制の一致」とも深く関わります。主節が過去形のとき、従属節をさらに過去に戻す場面で登場します。
  • → G-2-3 進行形:完了進行形は「完了形 + 進行形」の組み合わせです。進行形の「まさに動作の最中」という感覚を確認しておくと、完了進行形がより自然に理解できます。

📋まとめ

  • 完了形の核心は「ある時点までに」という矢印の意識。焦点が現在・過去・未来のどこにあるかでバリエーションが生まれる
  • 過去完了形(had + 過去分詞)── ある過去の時点を基準にして「そこまでに~していた」を表す。大過去(時間の前後関係の明示)にも使われる
  • 未来完了形(will have + 過去分詞)── 未来のある時点を思い描き「そのときまでに~しているだろう」を表す。by + 未来の時点とセットで使われやすい
  • 完了進行形(have been + -ing)── 完了形 + 進行形の合体。「ずっとし続けている」動作の臨場感を伝える
  • 状態動詞(know, liveなど)は完了形(継続)を使い、動作動詞(wait, studyなど)は完了進行形を使って動作の持続を表すのが原則
  • 覚え方の核心:矢印の先が「現在」「過去」「未来」のどこを向いているか ── 完了形の本質はそれだけ

確認テスト

Q1. 過去完了形・現在完了形・未来完了形に共通する「完了形の核心」は何ですか。

▶ クリックして解答を表示「ある時点までに」という矢印の意識。焦点が現在なら現在完了、過去のある時点なら過去完了、未来のある時点なら未来完了になる。形は違っても根っこの意識は同じ。

Q2. 次の英文は何形ですか。また、どのような場面で使いますか。
By the time I arrived, the train had already left.

▶ クリックして解答を表示過去完了形。「私が到着した」という過去の時点を基準にして、「その時点までにすでに電車が出発していた」という、さらに前の出来事(完了)を表している。

Q3. 「know は have been knowing にできない」のはなぜですか。

▶ クリックして解答を表示know は状態動詞であり、原則として進行形(-ing形)にできないため。状態動詞の継続は完了進行形ではなく、完了形(have known)で表す。

Q4. 次の2つの英文のニュアンスの違いを説明してください。
(a) I've waited for an hour. / (b) I've been waiting for an hour.

▶ クリックして解答を表示(a) は「1時間待った」という事実を客観的に述べている。(b) は完了進行形を使うことで「1時間もずっと待ち続けているんだよ」という動作の持続感・臨場感(疲れた、もうたくさん等の感情)が強まる。

7入試問題演習

この記事で学んだ内容を、入試形式の問題で確認しましょう。

A 基礎レベル

2-6-1 A 基礎 過去完了 空所補充

When I arrived at the classroom, the English test (  ).

  • ① already started
  • ② has already started
  • ③ had already started
  • ④ would already start
▶ クリックして解答・解説を表示
解答

③ had already started

解説

判断のポイント:When I arrived(過去の時点)と already に注目します。

「教室に着いたとき、テストはすでに始まっていた」── ある過去の時点(到着)までに、テスト開始という出来事が完了していたことを表すため、過去完了形 had already started が正解です。

② has already started(現在完了形)は「現在」が焦点なので、過去の文脈には合いません。

B 発展レベル

2-6-2 B 発展 未来完了 空所補充

He (  ) at the local hospital for 10 years by the end of next month.

  • ① has worked
  • ② has been working
  • ③ will have been working
  • ④ is working
▶ クリックして解答・解説を表示
解答

③ will have been working

解説

判断のポイント:by the end of next month(来月末までに)という未来の時点と、for 10 years(10年間)という期間を示す表現に注目します。

「来月末までで10年間勤務し続けていることになる」── 未来のある時点までの動作の継続を表すので、未来完了進行形 will have been working が正解です。

① has worked(現在完了)や② has been working(現在完了進行形)は未来の時点を基準にできません。

得点の差がつくポイント
  • by + 未来の時点 が来たら「未来完了形」を疑う習慣をつけよう
  • 期間(for 10 years)+ 動作動詞(work)→ 完了進行形(持続感)

C 応用レベル

2-6-3 C 応用 完了進行形 空所補充

Mr. Brown (  ) for nearly thirty minutes when his client arrived.

  • ① will have waited
  • ② has been waiting
  • ③ has waited
  • ④ had been waiting
▶ クリックして解答・解説を表示
解答

④ had been waiting

解説

判断のポイント:when his client arrived(顧客が到着したとき)という過去の時点と、for nearly thirty minutes(約30分間)という期間の2つに注目します。

「顧客が到着したときには、すでに30分近く待ち続けていた」── 過去のある時点までの動作の継続を表すので、過去完了進行形 had been waiting が正解です。

② has been waiting / ③ has waited は現在完了系で、過去の文脈に合いません。① will have waited は未来完了形で、同じく合いません。

得点の差がつくポイント
  • 「過去の時点」+「期間」+「動作動詞」→ 過去完了進行形を使う
  • wait は動作動詞なので、完了形(had waited)ではなく完了進行形(had been waiting)が自然
  • 現在完了系(has ...)か過去完了系(had ...)かは、基準となる時点が「現在」か「過去」かで判断する