現在完了形が「過去から現在への架け橋」なら、過去完了形は「さらに過去からある過去の時点への架け橋」、未来完了形は「現在から未来のある時点への架け橋」です。
さらに、完了形と進行形を組み合わせた完了進行形は「ずっとし続けている」という臨場感を加えます。
どの形にも共通するのは「ある時点までに」という矢印の意識。この感覚を軸に、完了形のバリエーションを一気にマスターしましょう。
現在完了形が「過去から現在に向かってくる矢印」だったのに対し、過去完了形は「さらに過去からある過去の時点に向かってくる矢印」です。 焦点が「現在」から「過去のある時点」にスライドしただけで、完了形のもつ「ある時点までに」という意識はまったく同じです。
現在完了形では「過去 → 現在」の流れを意識しました。過去完了形はこの焦点を過去に移し、「さらに前 → ある過去の時点」の流れを表します。
つまり過去完了形とは、ある過去の時点を基準にして、そこからさかのぼる意識です。「そのとき(過去)までに、すでに~していた」── それが過去完了形のコアイメージです。
現在完了形と同じく、完了・経験・継続の3つの用法があります。
had + 過去分詞
「(ある過去の時点までに)~していた / ~したことがあった / ~し続けていた」
2つの過去の出来事を、実際に起きた順序と逆の順序で述べるとき、時間的に先に起きた方を過去完了形で表すことがあります。 この用法は「大過去」と呼ばれます。
物語や会話では、出来事は必ずしも時系列どおりに語られるわけではありません。「昨日映画を見たんだけど、実はその前に原作を読んでいて……」のように、話の流れの中で時間が前後することはよくあります。
過去完了形は、このような場面で「こっちの方が先に起きたことだよ」と聞き手に明示するための道具です。「過去の時点がしっかり意識されていれば」過去完了形が自然に出てきます。
ただし、before や after など、文脈で前後関係が明らかな場合は、わざわざ過去完了形を使わなくてもOKです。
現在完了形の焦点を過去に移したのが過去完了形でした。では、焦点を未来に移したら? ── それが未来完了形です。未来のある時点を思い描き、「そのときまでにはこうなっているだろう」と予測する形です。
will have + 過去分詞
「(未来のある時点までに)~しているだろう / ~したことになるだろう」
未来完了形は「by + 未来の時点」(~までには)とセットで使われることが非常に多いです。
by ten o'clock(10時までには)、by the end of next month(来月末までには)、by next year(来年までには)── これらの表現が出てきたら「未来完了形かも?」と考える癖をつけましょう。
入試では「by + 未来の時点」を含む英文の空所に will have + 過去分詞を入れさせる問題が頻出です。
| 形 | 焦点となる時点 | 意味 | |
|---|---|---|---|
| 現在完了 | have/has + 過去分詞 | 現在 | 今までに~した |
| 過去完了 | had + 過去分詞 | 過去のある時点 | そのときまでに~していた |
| 未来完了 | will have + 過去分詞 | 未来のある時点 | そのときまでに~しているだろう |
3つとも根っこは同じ。「ある時点までに」という矢印の意識が共通しています。 違うのは矢印の先が「現在」「過去」「未来」のどこを向いているか、それだけです。
完了形(have done)は「ある時点までに」を表しました。進行形(be doing)は「まさに動作の最中」を表しました。 この2つを組み合わせると、「ある時点まで、ずっとある動作を続けている」という意味が生まれます。 それが完了進行形です。
現在完了進行形:have/has been + -ing
過去完了進行形:had been + -ing
未来完了進行形:will have been + -ing
完了進行形は、完了形の「ある時点までに」と進行形の「活動の真っ最中」を合体させた形です。
単なる継続の事実を述べるだけでなく、「疲れた」「もうたくさん」「うんざり」「大変だった」── そうした感情が乗りやすい表現です。
たとえば "I've been waiting for an hour!" には、「1時間も待ち続けてるんだよ!(もう勘弁してくれ)」という気持ちが込められています。単に "I've waited for an hour." と言うよりも、動作のリアルな持続感がぐっと伝わるのです。
「ずっと~している」を表すとき、完了形と完了進行形のどちらを使うかは、動詞の種類がカギになります。
状態動詞(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 ... もどちらも使えます。
動作動詞でも完了形(継続)を使うことは可能ですが、完了進行形と比べるとニュアンスが異なります。
I've studied English for three years.(完了形)── 3年間勉強した、という事実を客観的に述べている。
I've been studying English for three years.(完了進行形)── 3年間ずっと勉強し続けている、という動作の持続感・臨場感がある。「今もまさに続いている」感覚が強い。
完了形のバリエーションを学んだら、関連するトピックへ進みましょう。
Q1. 過去完了形・現在完了形・未来完了形に共通する「完了形の核心」は何ですか。
Q2. 次の英文は何形ですか。また、どのような場面で使いますか。
By the time I arrived, the train had already left.
Q3. 「know は have been knowing にできない」のはなぜですか。
Q4. 次の2つの英文のニュアンスの違いを説明してください。
(a) I've waited for an hour. / (b) I've been waiting for an hour.
この記事で学んだ内容を、入試形式の問題で確認しましょう。
When I arrived at the classroom, the English test ( ).
③ had already started
判断のポイント:When I arrived(過去の時点)と already に注目します。
「教室に着いたとき、テストはすでに始まっていた」── ある過去の時点(到着)までに、テスト開始という出来事が完了していたことを表すため、過去完了形 had already started が正解です。
② has already started(現在完了形)は「現在」が焦点なので、過去の文脈には合いません。
He ( ) at the local hospital for 10 years by the end of next month.
③ will have been working
判断のポイント:by the end of next month(来月末までに)という未来の時点と、for 10 years(10年間)という期間を示す表現に注目します。
「来月末までで10年間勤務し続けていることになる」── 未来のある時点までの動作の継続を表すので、未来完了進行形 will have been working が正解です。
① has worked(現在完了)や② has been working(現在完了進行形)は未来の時点を基準にできません。
Mr. Brown ( ) for nearly thirty minutes when his client arrived.
④ 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 は未来完了形で、同じく合いません。