完了形完了形は「過去から基準時へ刺さる1本の矢印」。刺さる場所を変えるだけで全部わかる

日本語には「現在完了」にぴったり当たる形がないので、完了形は多くの人が「なんとなく」で済ませてしまう分野です。でも正体はシンプルで、過去の出来事が基準時(話の中で「どの時点から見ているか」の時点)に“つながっている”ことを表す矢印。矢印を「今」に刺せば現在完了、「過去のある時」なら過去完了、「未来のある時」なら未来完了です。この単元では、3用法・have been to・since/for・併用できない語から、had hoped to や No sooner… than の倒置、英米差まで、この1本の矢印で読み解きます。
知ってた? 目から鱗
Q1現在完了の have は「持っている」の have と同じ?
もとは同じ語。古い英語の「〜した状態のものを持っている」という言い方が、have+過去分詞の完了形に発展したと考えられている。だから現在完了は今も「過去の出来事を今持っている」=今とのつながりを表す。
Q2Have you ever gone to Hawaii? は間違い?
学校文法では経験は have been to だが、アメリカ英語では Have you ever gone to 〜? を経験の意味で使うこともよくある。ただし入試の4択では「行ったことがある=have been to」「行ってしまった=have gone to」の区別で答えるのが安全。
Q3物語の回想シーンは、ずっと過去完了で書く?
ふつうは最初の1〜2文だけ過去完了にして「ここから過去の過去に入る」と合図し、あとは過去形に戻して語る。全部を過去完了で書くと had が続いて読みにくくなるから。時間の前後がはっきりしていれば、英語は過去完了を省くことも多い。
Q4My bike is gone! の is gone は受け身?
受け身ではなく「なくなっている」という状態を表す形。昔の英語では go や come のような移動の動詞の完了形を be+過去分詞で作っていて、その名残が is gone などに残っている。Are you done? の be done も「終わった状態」を表す。
Q5「3年ぶりに会った」は英語でどう言う?
I saw him for the first time in three years.。「〜ぶり」にぴったりの1語はないので、for the first time in 〜(〜の間で初めて)を使う。「3年の間で初めて会った」と言いかえるのがコツ。
01現在完了の核心:have=過去を「今」持っている 基礎
生徒I lost my key. と I have lost my key. って、どっちも「カギをなくした」でしょ? 何が違うの?
先生日本語訳は同じ。でも英語の頭の中の映像がちがいます。have は何て意味だった?
生徒「持っている」。
先生そう。have lost は「なくした状態を、今持っている」。つまり今もカギがない、まで言っているんです。
生徒じゃあ I lost my key. は?
先生過去の出来事を報告しているだけ。今は見つかっているかもしれない。
動く図解時間軸・変形・イメージ図がアニメーションで動きますアプリで見る 動く図解時間軸・変形・イメージ図がアニメーションで動きますアプリで見るhave+過去分詞=過去の出来事を「今」持っている
現在完了の have は、もとの「持っている」の意味を引きずっています。過去分詞(p.p. とも書く。go-went-gone の3つ目の形で、lost / finished / seen など)が表す「〜し終えた状態」を、今この時点で抱えている。だから現在完了の文は、いつも過去と今の両方を見ています。
過去の出来事として完結。今どうなったかは言っていない(見つかったかも)。
I lost my key.
なくした結果を今も抱えている=今もカギがない。
I have lost my key.
- I've finished my homework. Can I play games now?
宿題終わったよ。もうゲームしていい?(「終わった」の結果が今につながる(だから今遊べる)。) - Emma has cut her hair.
エマが髪を切った(今短い)。(目の前の変化に気づいたときの言い方。) - Spring has come.
春が来た(今は春だ)。
日本語の「〜した」を英語にするとき、「で、今は?」とツッコんでみる。今の状態まで言いたいなら現在完了、昔の出来事として言うだけなら過去形。
なぜ効く? 現在完了は「過去の出来事+今の状態」のセット、過去形は「過去の出来事」だけ。今に話の重心があるかどうかが分かれ目になる。
have(ハブ)で過去と今が接続される。過去の出来事から今へ乗り継いでいるなら have+p.p.、過去で旅が終わっているなら過去形。
日本語の「た」は、「昨日カギをなくした(過去)」にも「あっ、カギをなくした!(今困っている)」にも使えます。英語はこの2つを過去形と現在完了で分けています。和訳だけ見て「同じ意味」と思ってしまうのはそのためです。
確認問題 A: Where's your bike?
B: Someone ( ) it. I have to walk to school now.
盗まれた結果、今自転車がない(だから歩いて通学)=過去の出来事が今につながっているので現在完了 has stolen。steals(習慣)や will steal(これから)では「今歩くしかない」理由にならない。
023つの用法:完了・結果/経験/継続 基礎
現在完了には3つの用法があると言われます。完了・結果(〜したところだ・〜してしまった)、経験(〜したことがある)、継続(ずっと〜している)の3つです。ただし3つは別物ではなく、どれも「過去から今へつながる矢印」です。矢印の形のちがいとして見ると、一気に整理できます。
| 用法 | 矢印のイメージ | サインになる語 | 例文 |
|---|---|---|---|
| 完了・結果 | 直前の点→今(結果が残る) | just, already, yet, now | I've just eaten lunch. |
| 経験 | 過去の点々→今(経験として持っている) | ever, never, before, once, ~ times, often | I've been to Okinawa twice. |
| 継続 | 過去のある時から今までずっと(状態) | for, since, How long, all day | I've known Ken since elementary school. |
サインの語は大きなヒントだが、最後は文脈で判断する。
動く図解時間軸・変形・イメージ図がアニメーションで動きますアプリで見る 動く図解時間軸・変形・イメージ図がアニメーションで動きますアプリで見る 動く図解時間軸・変形・イメージ図がアニメーションで動きますアプリで見る- The concert has already started.
コンサートはもう始まってしまった。(完了・結果。already は肯定文で「もう」。) - Have you finished your report yet?
レポートはもう終わった?(yet は疑問文で「もう」、否定文で「まだ」。) - I've never seen such a beautiful sunset.
こんなに美しい夕日は見たことがない。(経験。) - We've lived in this town for ten years.
私たちはこの町に10年住んでいる。(継続。)
already=肯定文の「もう」。yet=疑問文の「もう」/否定文の「まだ」。
Have you finished already? のように疑問文で already を使うと「えっ、もう終わったの?」という驚きになります。
still は否定語の前に置いて I still haven't finished.(まだ終わっていない)=「いまだに」の強調。
完了(かん)・経験(けい)・継続(けい)。3用法の頭文字をつなぐと「カンケイ」。どれも今と関係がある、が現在完了の正体。
用法が見分けにくいときは、時間軸に矢印を描く。直前の1点なら完了・結果、散らばった点なら経験、途切れない線なら継続。
なぜ効く? 3用法は意味の分類というより、過去の出来事の“置き方”の違い。形で見れば、和訳を考える前に判定できる。
確認問題 Have you ever ( ) a koala?
Have you ever +過去分詞?=「今までに〜したことがある?」(経験)。see の過去分詞は seen。saw は過去形なので have のあとには置けない。
03have been to / have gone to / have been in 標準
「〜へ行ったことがある」は have been to。have gone to ではありません。go は「行ってしまう(ここからいなくなる)」動詞なので、have gone to は行ってしまって今ここにいないという完了・結果になるからです。
「そこにいた(been)」状態を経験として持っている。今はここにいる。
I have been to Hokkaido.
行った結果、今ここにいない。
Ken has gone to Hokkaido.
| 形 | 意味 | 例文 |
|---|---|---|
| have been to ~ | ① 〜へ行ったことがある(経験) | I've been to Kyoto many times. |
| have been to ~ | ② 〜へ行ってきたところだ(完了) | I've just been to the convenience store. |
| have gone to ~ | 〜へ行ってしまった(今いない) | Dad has gone to work. |
| have been in ~ | ずっと〜にいる(継続) | I've been in Tokyo for two years. |
been は be(いる)の過去分詞。「そこにいた」経験や継続を表す。gone は「去っていった」。
「行ってしまって今ここにいない」人が、ここで「私は行ってしまった」と話すのは矛盾します。だから have gone to の主語はふつう3人称(he / she / they)。ただし米語の口語では have gone to を「行ったことがある」の意味で使う人もいます。入試では「経験=have been to」で答えてください。
- Have you ever been to a live concert?
ライブに行ったことある? - Where have you been? I've been looking for you!
どこに行ってたの?ずっと探してたんだよ!(Where have you been?=(今戻ってきた相手に)どこにいたの?) - Emma isn't here. She's gone to the library.
エマはここにいないよ。図書館に行っちゃった。
生徒「アメリカに行ったことがある」を I have gone to America. って書いたらバツだった……。
先生それだと「アメリカに行ってしまって、今ここにいない私」になるからね。今しゃべってるのは誰?
生徒……私です。いるじゃん、ここに。
先生そう。been は「そこにいた」、gone は「去った」。自分が今ここにいるなら been です。
been は「行って、ビーンと戻ってきた」=経験・行ってきた。gone は「ゴーンと鐘が鳴って行っちゃった」=今いない。
確認問題 A: Is Mika at home?
B: No, she ( ) to the station to meet her grandmother.
今家にいない(行ってしまった)=have gone to。has been to だと「行ってきた(今ここにいる)」になり No と矛盾。主語 she なので have gone は不可。
04since と for、そして「〜してから○年」の書きかえ 標準
継続を表すときに欠かせないのが since と for。since は矢印の始点、for は矢印の長さを表します。
動く図解時間軸・変形・イメージ図がアニメーションで動きますアプリで見る過去の一時点・過去形の節が来る。
I've lived here since 2022 / since I was ten.
長さを表す語句が来る。
I've lived here for four years / for a long time.
| 書きかえ | ポイント |
|---|---|
| He died three years ago. | 過去の点+ago(過去形) |
| It has been three years since he died. | It has been+期間+since+過去形 |
| It is three years since he died. | It is でも可(イギリス英語に多い) |
| Three years have passed since he died. | 期間を主語に。pass(過ぎる) |
| He has been dead for three years. | die は一瞬の出来事なので継続は be dead で |
入試の書きかえ問題の定番。5つを1セットで覚える。
die は「死ぬ」という一瞬の出来事なので、for three years のような期間と組めません。「死んでいる状態」が続いていると考えて He has been dead for three years. にします。同じように「結婚して5年」は ✕ have married for five years → ○ have been married for five years。
- It's been ages since we last met!
最後に会ってから久しぶりだね!(It's been=It has been。ages=とても長い間(口語)。) - Ken and Yuki have been married for ten years.
ケンとユキは結婚して10年になる。 - I haven't eaten anything since this morning.
今朝から何も食べていない。
It has been / have passed / have been dead の主節と、since の後ろの過去形(he died / I was a child)をセットで確認する。since の後ろが現在完了になっていたら要注意。
なぜ効く? since は矢印の始点を指定する語。始点は過去の一点なので過去形が基本。矢印(継続)の部分は主節が担当する。
since の後ろには始まりの時点(2022 / last week / I was ten)、for の後ろには長さ(three years / a week / ages)。
確認問題 My grandfather died five years ago.
=My grandfather has ( ) for five years.
die は一瞬の出来事なので期間と組めない。「死んでいる状態」の継続として has been dead for five years。been dying は「死にかけている状態が続いている」で意味が変わる。
05現在完了といっしょに使えない語:過去をピン留めする言葉 標準
✕ I have seen him yesterday. はなぜダメなのでしょう。yesterday は「昨日」という過去の一点に出来事をピンで留める語です。一方、現在完了は「今」に立って過去からの矢印を眺める形。視点が「今」にある文に、「昨日」という別の視点を持ちこむと、立ち位置が2つになって衝突してしまうのです。
過去の一点を特定する語があれば、過去形
yesterday / ~ ago / last ~ / in 2020 / just now / then(その時)/ the other day / when I was a child / When …?(いつ)/ What time …?
これらは「いつのことか」を過去の点で特定する語。現在完了とは一緒に使えません。
| 現在完了と ✕(過去形を使う) | 現在完了と ○ |
|---|---|
| yesterday / last week / in 2020 | since yesterday / since last week / since 2020 |
| three days ago | for three days |
| just now(ついさっき) | just(ちょうど) |
| When did you ~? / What time did you ~? | How long have you ~? / How many times have you ~? |
| then(その時)/ the other day | before / recently / lately / so far / ever / never |
since や for をつけると「過去の点」が「矢印の始点・長さ」に変わるので OK になる。
動く図解Yes/No で進む判定チャートアプリで見る「いつ」は過去の一点を尋ねる疑問詞なので過去形。
When did you arrive in Japan?
「どのくらいの間」は矢印の長さを尋ねるので現在完了。
How long have you been in Japan?
just(ちょうど今〜したところ)は現在完了と相性◎:I've just finished it.
just now(ついさっき)は過去の一点なので過去形:I finished it just now.
now がつくかどうかで時制が変わる、入試の定番ひっかけです。
this morning という枠がまだ終わっていない=今とつながる。
I've had three cups of coffee this morning.
this morning はもう終わった過去の枠。
I had three cups of coffee this morning.
yesterday / ago / last / When は過去をピン留めする語。現在完了とはお別れして泣いている(うぇ〜ん)と覚える。just now の「なう」もピン留め組。
時制を問う疑問文は、先頭の疑問詞を見るだけで決まることが多い。When / What time は点を聞くので過去形。How long / How many times は「今までの」長さ・回数を聞くなら現在完了。
※終わった期間なら How long did you stay in Paris? のように過去形、ふだんの頻度なら How often do you …? のように現在形です。
なぜ効く? 疑問詞そのものが「時間軸のどこを聞いているか」を示している。点を聞く疑問詞は矢印の形と合わない。
確認問題 I ( ) Ken at the convenience store just now.
just now(ついさっき)は過去の一点を表すので過去形 saw。現在完了とは一緒に使えない。「ちょうど今」の just なら現在完了と使える。
06現在完了進行形:矢印の先がまだ動いている 応用
現在完了進行形(have been ~ing)は、「過去から今までの矢印」と「今も途中」を合体させた形です。ずっと〜し続けていて、今もまだやっている(またはたった今までやっていた)を表します。
動く図解時間軸・変形・イメージ図がアニメーションで動きますアプリで見る 動く図解時間軸・変形・イメージ図がアニメーションで動きますアプリで見る本を読み終えた(結果に焦点)。
I've read the book.
本を読んでいる途中(まだ終わっていない・行為に焦点)。
I've been reading the book.
| 用法 | 例文 | 和訳 |
|---|---|---|
| ① 動作の継続(今も続いている) | I've been studying for three hours. | 3時間ずっと勉強している。 |
| ② 直前までの動作と、その痕跡 | Your eyes are red. Have you been crying? | 目が赤いよ。泣いてたの? |
| ③ くり返しの継続 | I've been calling you all day! | 一日中ずっと電話してたんだよ! |
②は、動作は今終わっているが「ついさっきまで続いていた証拠」が目の前にある場合。
状態動詞の継続は、ふつうの現在完了で
know / be / have(持っている)/ like などの状態動詞(「知っている」「好きだ」のように、始まりも終わりも意識しない“状態”を表す動詞)は進行形にしないので、継続は現在完了で表します。
○ I've known Ken for ten years.(✕ have been knowing)
○ She has been sick since Monday.(✕ has been being)
事実として淡々と。長く安定した状態。
I've lived here for ten years.
今も続いていることを強調。一時的な響きが出ることも。
I've been living here for ten years.
live / work / study / teach / wait のように「状態っぽくも動作っぽくもある」動詞は、for / since と一緒ならどちらの形でも継続を表せます。差はニュアンス程度なので、入試ではほかの手がかり(状態動詞か、何回したか、など)で判断します。
I've written three emails this morning.(3通書いた=結果の数)
✕ I've been writing three emails this morning.
「何通・何ページ・何回」という完了した量を言うときは、途中を表す進行形とは合いません。
生徒Have you been crying? って、今は泣いてないのに進行形なの?
先生目が赤いという「痕跡」が今ある。ついさっきまでの動作の続きが、今に残ってるわけです。
生徒Have you cried? だとダメ?
先生「泣いたことある?」という経験の質問っぽく聞こえてしまう。直前までの動作を言うなら進行形のほうがぴったりです。
for / since がある継続の文で、動詞が動作(run, play, watch)なら have been ~ing が基本、状態(know, be, have, like)なら have p.p.。live / work / study / wait などはどちらも可(上の段落)。
なぜ効く? 継続は「途中がある動作」なら進行形で途切れなさを出し、「もともと途切れない状態」ならそのまま完了形で表すから。
確認問題 I'm so tired. I ( ) for the bus for forty minutes, and it still hasn't come!
バスはまだ来ていない=40分前から今までずっと待ち続けている(今も待っている)ので現在完了進行形。waited は待ち終わった過去の話、am waiting は for forty minutes と組めない、had waited は過去の基準時がない。
07過去完了:矢印を「過去のある時」に刺す 応用
過去完了(had+過去分詞)は、現在完了の矢印をそのまま過去へスライドさせた形です。刺さる先が「今」ではなく「過去のある時点(基準時)」。だから過去完了を使うには、必ず基準となる過去の時点が文中か文脈にあります。
動く図解時間軸・変形・イメージ図がアニメーションで動きますアプリで見る 動く図解時間軸・変形・イメージ図がアニメーションで動きますアプリで見る着いたときには電車はもういなかった(乗れなかった)。
When I got to the station, the train had left.
着いたのと同時か直後に出た(目の前で発車)。
When I got to the station, the train left.
| 用法 | 例文 | 和訳 |
|---|---|---|
| 大過去(基準時より前の出来事) | I lost the watch my father had given me. | 父がくれた腕時計をなくした。 |
| 完了・結果(基準時までに) | The movie had already started when we arrived. | 着いたときには映画はもう始まっていた。 |
| 経験(基準時までに) | I had never seen snow until I came to Hokkaido. | 北海道に来るまで雪を見たことがなかった。 |
| 継続(基準時まで) | She had lived in Paris for five years before she moved to Tokyo. | 東京に越すまで5年間パリに住んでいた。 |
現在完了の3用法が、そのまま「過去の基準時」バージョンで使える。
After I finished my homework, I watched TV.(過去完了 had finished でも可)
after / before は出来事の順番をはっきり示すので、過去完了を使わなくても誤解が生じません。逆に when の文は順番があいまいなので、「前」を示したいなら過去完了が必要です。
- She had been waiting for an hour when he finally showed up.
彼がやっと現れたとき、彼女は1時間ずっと待っていた。(過去完了進行形=過去の基準時まで動作が続いていた。) - The ground was wet. It had been raining all night.
地面がぬれていた。一晩中雨が降っていたのだ。(過去の時点での「痕跡」。)
had p.p. を選ぶ前に、文中に基準となる過去の時点(過去形の動詞・when 節・by then など)があるか確認する。基準時がなければ過去完了は使えない。
なぜ効く? 過去完了は「過去のある時点から見た、さらに前・そこまで」を表す形。刺さる先の基準時がなければ矢印が宙に浮いてしまう。
have(今のハブ空港)を過去に移したのが had。過去の基準時という“ハブ”に、さらに昔の出来事を乗り継がせる。
確認問題 When I got home, I found that someone ( ) the window.
found(家に着いて気づいた)が基準時。窓が割られたのはそれより前なので過去完了 had broken(大過去)。has broken は基準時が今のときの形。
08未来完了と、副詞節の中の現在完了 応用
矢印を未来のある時点に刺せば未来完了(will have+過去分詞)。「その時までには〜してしまっているだろう」「その時で〜したことになる」を表します。
動く図解時間軸・変形・イメージ図がアニメーションで動きますアプリで見る 動く図解時間軸・変形・イメージ図がアニメーションで動きますアプリで見る- By the time you get here, I will have cleaned my room.
君が来るころには、部屋を片づけ終わっているだろう。(完了・結果。) - If I visit Kyoto again, I will have been there five times.
もう一度京都に行けば、5回行ったことになる。(経験。) - Next April, we will have lived in this house for ten years.
来年の4月で、この家に住んで10年になる。(継続。)
- By six o'clock, I will have been studying for five hours.
6時で、5時間ぶっ続けで勉強していることになる。(未来完了進行形=未来の基準時まで動作が続いている。)
時・条件の副詞節の中では、未来完了→現在完了
時制の単元で学んだ「時・条件の副詞節(when / after / until / if などが作る“〜したら”“もし〜なら”のカタマリ)は未来でも原則として現在形」は、完了形にも当てはまります。副詞節の中では、ふつう will have p.p. ではなく have p.p. を使います。
I'll lend you the book when I have finished it.(✕ will have finished)
※if 節の will が意志・依頼を表す場合などの例外は、時制の単元の「副詞節なのに will が出てくる例外」を参照。
IS 'll lendV youO the bookO when I have finished it副詞節.
読み終えたら、その本を貸してあげる。終わる瞬間・終わったら(ふつうの言い方)。
Call me when you finish.
「すっかり終えてから」と完了を強調。
Call me when you've finished.
未来完了とよく組むのは by / by the time(期限=その時までに完了)。until / till は「その時までずっと継続」。
I'll have finished it by Friday.(金曜までに終える)
I'll be here until Friday.(金曜までずっといる)
by the time 節・by+未来の時点があれば、主節は未来完了(または過去完了)の可能性大。ただし by the time 節の中は現在形(過去の話なら過去形)。
なぜ効く? by the time は「その時点までに」という期限=矢印の刺さる先を指定する表現。主節には「その時までに完了している」矢印が来やすい。
確認問題 I'll lend you this comic after I ( ) it.
after 節は時の副詞節なので、未来完了 will have read ではなく現在完了 have read(未来のことでも現在時制)。will read もここでは不可。
09had hoped to の「かなわなかった願い」と、No sooner had … than 難関
過去完了には、難関大が好んで出す2つの“顔”があります。1つは had hoped [intended / meant / expected] to do=「〜するつもりだったのに(できなかった)」。もう1つは No sooner had S p.p. than …=「〜するとすぐに…」の倒置(ふつうの語順をひっくり返すこと。ここでは had が主語の前に出る)です。どちらも「基準時まで」「基準時より前」を表す過去完了の性質から説明できます。
動く図解時間軸・変形・イメージ図がアニメーションで動きますアプリで見る- I had hoped to see you at the party, but you didn't come.
パーティーで会えるのを楽しみにしていたのに、君は来なかったね。 - We had intended to leave early, but it started snowing.
早めに出発するつもりだったが、雪が降り出してしまった。 - I had meant to call you, but I forgot.
電話するつもりだったんだけど、忘れちゃった。
なぜ had hoped で「実現しなかった」になるのか
過去完了は「基準時まで〜していた」という、基準時で区切られた矢印です。「その時までは願っていた」と区切って言うと、「その後は違った=かなわなかった」という含みが自然に生まれます。現在完了の「今も続いている」と逆の効果です。
| 言い方 | 例文 |
|---|---|
| had hoped [intended / meant] to do | I had hoped to win the game. |
| hoped [intended / meant] to have done | I hoped to have won the game.(やや堅い) |
| was going to do(口語) | I was going to call you, but… |
どれも「〜するつもりだったが、しなかった」。to have done の形は不定詞の単元でも出てくる。
動く図解時間軸・変形・イメージ図がアニメーションで動きますアプリで見る| 形 | 意味 |
|---|---|
| No sooner had S p.p. than S 過去形 | 〜するとすぐに…した |
| S had no sooner p.p. than S 過去形 | (倒置しない形) |
| Hardly [Scarcely] had S p.p. when [before] S 過去形 | 〜するかしないかのうちに…した |
| As soon as / The moment S 過去形, S 過去形 | 〜するとすぐに…した(ふつうの言い方) |
No sooner / Hardly の側は過去完了(ほんの一瞬前に起きた出来事)、than / when 以下は過去形。
なぜ than? なぜ had?
sooner は soon の比較級なので相方は than。直訳は「…が起きるよりも早く〜していたということはない」=ほぼ同時。hardly / scarcely は「ほとんど〜ない」なので相方は when / before(「〜したかしないかのうちに、その時…」)。
先に起きたのは「座った」ほう(ほんの一瞬前)なので過去完了 had sat、あとの「鳴った」は過去形です。
No sooner … than(比較級 sooner の相方は than)/Hardly [Scarcely] … when [before]。相方を入れかえた選択肢が定番のひっかけ。
✕ No sooner I had sat down than … → ○ No sooner had I sat down than …
✕ Hardly had I sat down than … → ○ Hardly had I sat down when …
口語では No sooner did I sit down than … のような過去形も見かけますが、入試では had p.p. の形が基本です。hardly … than も実際には見かけますが、誤りとされることが多く、入試では✕です。
確認問題 No sooner ( ) home than it began to pour.
No sooner が文頭に出ると倒置して had+S+p.p.。家に着いたのが雨よりほんの一瞬先なので過去完了。I got / I had got は倒置していないので誤り。did I got は did のあとに過去形が来ていて誤り。
10難関大の差がつくポイント:過去形か、現在完了か 難関
「ピン留め語」がない文では、過去形と現在完了のどちらを使うかは話し手が「今」とのつながりを感じているかで決まります。難関大はこの判断を、手がかりの少ない文で問うてきます。
シェイクスピアは今は生きていないので、「書く」行為が今につながらない。
Shakespeare wrote many plays.
作者が今も活動していて、書いた実績が今につながる。
Emma has written three novels so far.
主語が「今」も存在し、同じ状況が続いているか
現在完了は「今」を含む期間の話。主語がもういない人(故人)の話や、すでに終わってしまった期間(午後から見た this morning など)の話は、ふつう過去形になります。
✕ My grandfather has visited Paris twice.(祖父がすでに亡くなっている場合)
○ My grandfather visited Paris twice.
| 表現 | 時制のポイント |
|---|---|
| This is the first time I've ever eaten sushi. | This is the first time のあとは現在完了(今までで初めて) |
| It was the first time I had ever eaten sushi. | 過去の話なら過去完了 |
| This is the best movie I've ever seen. | 最上級+名詞+I have ever p.p.(今までで一番) |
| I have got a cold.(英で特に多い) | have got=have(持っている)。形は完了だが意味は現在 |
the first time / 最上級+ever は「生まれてから今まで」の経験の矢印。
今日という枠がまだ終わっていない。
Have you seen Ken today?
パーティーは終わった過去の出来事。
Did you see Ken at the party?
- Who has eaten my pudding?
誰が私のプリン食べたの?(今プリンがない(結果)ことに怒っている。) - Who painted this picture?
この絵は誰が描いたの?(描いた時は過去の一点。作者を尋ねるのは過去形がふつう。) - I have lost 3 kg since I joined the track team.
陸上部に入ってから3キロやせた。
this year / this month / today は、その期間がまだ続いているなら現在完了、その期間の中の終わった一点を思い浮かべていれば過去形もありえます。I've read five books this month.(今月これまでに)/I read a great book this month.(今月読んだ1冊の話)。選択肢で両方並ぶ場合は、ほかの手がかり(so far / 回数・量など)を探してください。
ピン留め語がないときは、①主語が今も存在するか、②その期間(today / this week など)は今も続いているか、③結果や経験が今に影響しているか、の3点を確認する。1つでも「今につながらない」ならふつう過去形。
なぜ効く? 現在完了は「今」を終点とする矢印。矢印の終点に主語や状況が存在しなければ、矢印そのものが成り立たない。
確認問題 This is the most delicious ramen I ( ).
最上級+名詞+I have ever p.p.=「今まで食べた中で一番」。今までの人生の経験の矢印なので現在完了。had ever eaten は過去の基準時(It was the most …)のときの形。
確認問題 次のうち、自然な英文を選べ。
just(ちょうど)は現在完了と相性◎。When は過去の一点を尋ねるので When did you finish…?、in 2019 と just now も過去の点なので過去形にする。
11超上級:ネイティブの完了形感覚と英米差 超難関
最後は、教科書の外で実際に起きていることです。どれも「今とのつながりが強いか弱いか」というたった1つの物差しで説明できます。
動く図解グラフが伸びるアニメーションアプリで見る| 場面 | イギリス英語でよく聞く | アメリカ英語の口語でよく聞く |
|---|---|---|
| もう食べた? | Have you eaten yet? | Did you eat yet? |
| ちょうど食べたところ | I've just eaten. | I just ate. |
| もう見た? | Have you already seen it? | Did you already see it? |
アメリカ英語の口語では just / already / yet と過去形を組むことがよくある。入試の文法問題ではイギリス式(現在完了)が安全。
- Scientists have discovered a new species of frog. They found it in the Amazon last month.
科学者たちがカエルの新種を発見した。先月アマゾンで見つけたものだ。(ニュースの第一文は現在完了(今知るべき新情報)、詳細(いつ・どこで)は過去形。) - When have I ever lied to you?
私がいつ君にうそをついたっていうの?(一度もないでしょ)(When+現在完了は原則✕だが、「今までのいつ?=一度もない」という反語(修辞疑問)では使われる。) - I've been meaning to call you.
ずっと電話しようと思ってたんだ。(mean(〜するつもりだ)の完了進行形。「気にはなっていた」という言い訳・前置きの定番。) - I've made a lot of friends since I've been in Tokyo.
東京に来てから友だちがたくさんできた。(since 節は過去形が基本だが、その状態が今も続いているときは現在完了も使われる。)
来日してから今までの長さを聞く。
How long have you been in Japan?
これからの滞在予定の長さを聞く。
How long are you staying in Japan?
日本語の「日本に来てどのくらい?」を How long are you in Japan? と言うと、「どのくらい(の予定で)日本にいるの?」という未来の滞在期間の質問に聞こえます。過去から今までは現在完了、これからは進行形(予定)。
生徒アメリカ人の友だちが Did you eat yet? って言ってた。yet と過去形っていいの?
先生アメリカ英語の口語ではよくある言い方です。イギリス英語より「今」とのつながりを文法で表さない傾向があるんです。
生徒じゃあ試験でも書いていい?
先生文法問題では Have you eaten yet? が安全。会話で聞いたら「アメリカっぽいな」と思えればOK。
長文でニュース記事や報告が出てきたら、最初の現在完了の文が「要旨」、続く過去形の文が「いつ・どこで・どのように」の詳細。要約問題では現在完了の文を中心にまとめる。
なぜ効く? 現在完了は「今に関係のある新情報」を提示する形、過去形は過去の一点の事実を報告する形。情報の役割が時制で分担されている。
確認問題 (アメリカ英語の口語として)Did you finish your homework yet? について正しい説明を選べ。
アメリカ英語の口語では yet / already / just を過去形と一緒に使うことがよくある。意味は現在完了の文とほぼ同じ。ただし入試の文法問題では現在完了で書くのが安全。
瞬間英作文チャレンジ
日本語を見て、3秒で英語にして声に出す。カードをタップすると答えが出ます。
超絶テク
日本語の「〜した」を英語にするとき、「で、今は?」とツッコむ。今の状態・経験・継続まで言いたいなら現在完了、昔の出来事として報告するだけなら過去形。
なぜ効く? 現在完了は「過去の出来事+今」のセット、過去形は「過去の出来事」だけ。話の重心が今にあるかどうかが分かれ目。
「宿題終わった(だから遊べる)」→ I've finished my homework.
選択肢に現在完了があったら、まず文中の yesterday / ago / last / in+年 / just now / then / When / What time を探す。1つでもあれば現在完了は消去。
なぜ効く? これらは出来事を過去の一点に固定する語。今に立って眺める現在完了とは視点がぶつかる。
I ( ) him two days ago. → have met は✕、met が正解
When / What time で始まる疑問文 → 過去形。「今までの」長さを聞く How long → 現在完了(進行形)。「今までの」回数を聞く How many times → 現在完了(経験)。※終わった期間なら How long did you stay?(過去形)、ふだんの頻度なら How often do you …?(現在形)。
なぜ効く? 疑問詞が「時間軸のどこを尋ねているか」を示している。点を聞く When は過去形、今までの矢印の長さや回数を聞く How long / How many times は現在完了と相性がよい。
How long have you known her? / When did you meet her?
用法で迷ったら時間軸に描く。直前の1点→完了・結果、散らばった点→経験、途切れない線→継続。和訳を考える前に形で決める。
なぜ効く? 3用法は「過去の出来事の置き方」の違い。形で見れば just / ever / for などのサイン語がない文でも判定できる。
I've read this book twice.(点が2つ→経験)
have been to と have gone to で迷ったら、主語が今ここ(話している場所)にいるかを確認。いるなら been、いないなら gone。主語が I / we なら基本は been。
なぜ効く? been は be(そこにいた)の過去分詞で「行って戻った」、gone は go(去る)の過去分詞で「去ったまま」。主語の現在地がそのまま答えになる。
Where's Mom? — She's gone to the supermarket.
He died three years ago. = It has been three years since he died. = It is three years since he died. = Three years have passed since he died. = He has been dead for three years. の5つの形をセットで言えるようにしておく。
なぜ効く? 入試の書きかえ問題は、この5つの形の組み合わせでほぼ作られる。特に die → be dead、It has passed の誤りが狙われる。
They married ten years ago. → They have been married for ten years.
for / since がある継続の文で、動詞が動作(run, play, watch)なら have been ~ing が基本、状態(know, be, like, have)なら have p.p.。live / work / study / wait はどちらの形も可。
なぜ効く? 状態動詞は進行形にしないという原則が、完了進行形にもそのまま適用される。
I've known him for years.(✕ have been knowing)
had p.p. を選ぶ前に、文中に基準となる過去の時点(過去形の動詞・when 節・by then など)があるか確認。なければ過去完了は使えない。after / before があれば過去形でも可。
なぜ効く? 過去完了は「過去の基準時から見て、さらに前・そこまで」を表す。基準時がなければ矢印の刺さる先がない。
When I arrived, the concert had already started.
By the time S+現在形, S will have p.p.(未来)/ By the time S+過去形, S had p.p.(過去)。この2つの型を見たら反射的に形を決める。
なぜ効く? by the time は「その時までに」という期限=矢印の刺さる先を指定する。節の中は時の副詞節なので未来でも原則として現在形。
By the time you wake up, I will have left.
No sooner → than(sooner が比較級だから)。Hardly / Scarcely → when / before。文頭なら had+S+p.p. の倒置、後半は過去形。
なぜ効く? 丸暗記ではなく「sooner=比較級→than」と理屈でつなぐと、相方を入れかえたひっかけに強くなる。
Hardly had I left home when it began to rain.
had hoped to do / had intended to do / had meant to do を見たら、後ろに but … がなくても、ふつう「〜するつもりだったのにできなかった」と読む。
なぜ効く? 過去完了は基準時で区切られた矢印。「その時までは願っていた」と区切ることで、その後はかなわなかったという含みが生まれる。
I had intended to finish the report yesterday.(実際は終わらなかった)
ピン留め語がない文でも、主語が故人・もう存在しないもの・終わった期間ならふつう過去形。「今」を終点とする矢印が引けないから。
なぜ効く? 現在完了は今を含む期間の話。今に主語がいなければ、今につながる矢印は成立しない。
Shakespeare wrote many plays.(✕ has written)
語呂・暗記フック
have(ハブ)で過去の出来事が今に接続される。過去で旅が終わっているなら過去形、今まで乗り継いでいるなら have+p.p.。
完了(かん)・経験(けい)・継続(けい)=カンケイ。3つとも「今と関係がある」のが現在完了。
been=行って戻ってきた(経験・行ってきた)。gone=行ってしまって今いない。
yesterday / ago / last / When は過去をピン留めする語。現在完了とはお別れ。just now の「なう」も同じ組。
since の後ろは始まりの時点(2020 / last week / I was ten)、for の後ろは期間の長さ(three years / ages)。
sooner は soon の比較級なので than とセット。hardly / scarcely は when(または before)とセット。
had hoped / intended / meant to do は「〜するつもりだった(でもできなかった)」。had hoped などを見たら「希望が消えた」と読む。
今のハブ(have)を過去に移したのが had。過去の基準時に、さらに昔の出来事を乗り継がせる。基準時(ハブ)がなければ使えない。
ひっかけ図鑑
yesterday / ago / last ~ / in 2019 / just now などがあれば過去形。和訳が「〜した」だと現在完了を選びたくなるが、ピン留め語があれば即アウト。
✕ ✕ I have visited Nara last month.
○ ○ I visited Nara last month.
When は「いつ」という過去の一点を尋ねるので過去形。How long / How many times なら現在完了。
✕ ✕ When have you started playing the piano?
○ ○ When did you start playing the piano?
have gone to は「行ってしまって今いない」。経験は have been to。
✕ ✕ I have gone to Australia twice.
○ ○ I have been to Australia twice.
die / marry は一瞬の出来事なので for+期間と組めない。be dead / be married で状態にする。
✕ ✕ Her cat has died for two years.
○ ○ Her cat has been dead for two years.
pass(過ぎる)の主語は期間(Three years など)。時間を表す it(訳さない it)を主語にはできない。It has been ~ since … か ~ have passed since …。
✕ ✕ It has passed five years since we met.
○ ○ Five years have passed since we met.
ever は疑問文・否定文・if 節・最上級や the first time のあとで使う。「〜したことがある」の肯定文には入れない。
✕ ✕ I have ever been to Kyoto.
○ ○ I have been to Kyoto (before).
know / be / like / have(持っている)などは完了進行形にしない。継続は have p.p. で。
✕ ✕ I have been knowing Yuki since we were five.
○ ○ I have known Yuki since we were five.
when / after / until / as soon as / if の副詞節の中は、原則として未来完了ではなく現在完了(if 節の will が意志・依頼を表す場合などの例外は時制の単元参照)。
✕ ✕ I'll go out after I will have finished my homework.
○ ○ I'll go out after I have finished my homework.
No sooner が文頭なら had+S+p.p.。相方は than。Hardly / Scarcely の相方は when / before。
✕ ✕ No sooner I had arrived when it started raining.
○ ○ No sooner had I arrived than it started raining.
過去完了は「過去の基準時」があって初めて使える。単に昔のことだから had p.p. にするのは誤り。
✕ ✕ I had visited Kyoto in 2015.(ほかに過去の基準時がない)
○ ○ I visited Kyoto in 2015.
生徒のギモン
現在完了はなぜ have(持っている)を使うの?
古い英語では「I have the letter written.(書かれた手紙を持っている)」のように、have+目的語+過去分詞で「〜された状態の物を持っている」と言っていました。これが長い年月をかけて I have written the letter. という語順に変わり、「〜し終えた状態を今持っている」=現在完了になったと考えられています。have の「持っている」の感覚は、今も完了形の芯に残っているのです。
日本語だと同じ「〜した」なのに、区別がそんなに大事?
英語話者にとっては、過去形と現在完了は「今とつながっているか」を伝える大事な情報です。I lost my phone. だけだと「で、見つかったの?」と聞かれるかもしれませんが、I've lost my phone. なら「今も困っている」が一発で伝わります。入試では、その区別を yesterday や since などの語と組み合わせて問うてきます。
過去の出来事の順番は、いつも過去完了で書かないといけないの?
いいえ。起きた順に書くなら過去形を並べるだけで十分です(I got up, washed my face, and left.)。過去完了が必要なのは、「後に起きたことを先に書いて、それより前のことを後から書く」とき、特に when の文のように順番があいまいになるときです。after / before があれば順番が明らかなので過去形でもかまいません。
since の後ろは必ず過去形?
基本は過去形です(since I was a child / since he left)。ただし、since 節の状態が今も続いているときは I've made many friends since I've been in Tokyo. のように現在完了も使われます。「東京に来てから(今もいる)」というニュアンスです。入試の空所補充では、まず過去形を考えてください。
「〜したことがある」に ever をつけなくていいの?
肯定文ではつけません。ever は「いつでも・一度でも」という意味で、疑問文(Have you ever …?)、否定文(I haven't ever …=I've never …)、if 節(If you've ever been to Kyoto, …)、最上級(the best movie I've ever seen)、the first time のあとで使います。✕ I have ever been to Kyoto. は典型的なミスです。
have got って完了形なの?
形は現在完了ですが、意味は have(持っている)とほぼ同じです。イギリス英語で特に多く、アメリカ英語の口語でもよく使われます。I've got a cold.=I have a cold.(風邪をひいている)。I've got to go.=I have to go.(もう行かなきゃ)もよく聞きます。アメリカ英語では got の代わりに gotten を使う過去分詞の違いもあります(have gotten=手に入れた・〜になった)。
超絶おもしろコラム
アインシュタインはプリンストンを「訪れたことがある」か?文法的には完璧なのに、なぜかヘンに聞こえる現在完了の文があります。
言語学の世界でよく知られた例文に、Einstein has visited Princeton.(アインシュタインはプリンストンを訪れたことがある)というものがあります。文法の形としては何の問題もない現在完了の経験用法です。ところが多くの英語話者は、この文に違和感を覚えるといいます。理由は、アインシュタインがすでに亡くなっている人物だからです。
現在完了は「今」を終点とする矢印でした。経験用法の Tom has visited Kyoto. は「トムの人生のこれまでの期間に、京都訪問という点がある」という意味で、その期間は今も続いています。トムが生きていて、今後もまた訪れる可能性があるからこそ、「今までの経験」として語れるのです。故人の人生はもう閉じた期間なので、今につながる矢印が引けません。だから Einstein visited Princeton. と過去形で言うのが自然になります。
ところが、主語を入れかえた Princeton has been visited by Einstein.(プリンストンはアインシュタインに訪問されたことがある)は、ぐっと自然に聞こえます。プリンストンという町は今も存在していて、「この町の歴史には、アインシュタインが訪れたという経験がある」と、今につながる話として語れるからです。
この例が教えてくれるのは、現在完了は「過去の出来事」を語る形ではなく、主語の“今”について語る形だということです。同じ出来事でも、誰を主語にして、その主語が今どうなっているかで、現在完了が使えるかどうかが変わります。
入試でも、My grandfather, who died last year, ___ Paris twice. のように、主語が故人であることを関係詞節にさりげなく忍ばせた問題が考えられます。ピン留め語がなくても、「その主語は今も存在する?」とチェックできれば、過去形を選べるはずです。
Did you eat yet? の国と Have you eaten yet? の国アメリカの映画やドラマを見ていると、教科書では「ダメ」と習った文がよく聞こえてきます。
Did you eat yet?(もう食べた?)、I just got here.(今着いたところ)、Did you already finish it?(もう終わったの?)。学校では「yet / just / already は現在完了と使う」と習いますが、アメリカ英語の日常会話では、こうした過去形との組み合わせがごく普通に使われています。
一方、イギリス英語では Have you eaten yet? / I've just got here. のように現在完了を使う傾向がはっきりしています。イギリス英語の話者が Did you eat yet? と聞くと、「アメリカっぽいな」と感じることがあると言われます。つまり、これは「どちらが正しいか」ではなく「方言(地域による変種)の違い」なのです。
なぜアメリカ英語は過去形に寄るのでしょう。はっきりした答えはありませんが、「今とのつながり」を文法の形ではなく、just / yet / already という副詞に任せている、と考えるとわかりやすくなります。副詞が「今」を示してくれるので、動詞を完了形にする必要を感じにくいのです。
ほかにも英米差はあります。get の過去分詞は、アメリカでは gotten(I've gotten better.=よくなった)、イギリスでは got が基本です。イギリスでよく聞く I've got a car.(車を持っている)は、アメリカでは I have a car. と言うことも多い表現です。
では入試ではどうするか。文法問題は、どちらの英語でも正しいと認められる形、つまり現在完了で答えるのが安全です。ただし長文やリスニングで Did you eat yet? に出会っても、「誤植だ」と思わなくて大丈夫。完了形の感覚をつかんだうえで英米差まで知っていると、英語の見え方が一段広がります。
日本語にも「完了形」は隠れている日本語には現在完了がない、とよく言われます。でも、よく見ると日本語もちゃんと「今とのつながり」を表しています。
英語の現在完了の3用法を、日本語でどう言うか考えてみましょう。完了・結果は「〜てしまった」「〜たところだ」、経験は「〜たことがある」、継続は「ずっと〜ている」。日本語には「現在完了」という名前の活用こそありませんが、補助動詞や言い回しで同じ情報を表しているのです。
とくに注目したいのが「〜ている」です。「走っている」は進行(今まさに途中)ですが、「窓が割れている」は進行ではありません。窓が割れるのは一瞬の出来事で、「割れている」は割れた結果が今も残っている状態を表します。英語にすれば The window has been broken. や The window is broken. に近い。「結婚している」も、結婚式の最中ではなく「結婚した結果、今も夫婦だ」という意味です。
つまり日本語の「〜ている」は、英語の進行形と現在完了(結果)の両方の役割を1人でこなしているのです。英語学習者が「〜している」をすぐ進行形にしてしまうのは、この二刀流のせいでもあります。「彼は死んでいる」を He is dying. と訳すと「死にかけている」になってしまうのは、まさにこの落とし穴です(正しくは He is dead.)。
逆に、英語を日本語に訳すときは、現在完了の用法ごとに日本語の言い回しを選び分けると、自然な訳になります。I've lost my key.=「カギをなくしてしまった」、I've been to Paris.=「パリに行ったことがある」、I've lived here for ten years.=「ここに10年住んでいる」。
英語と日本語は、時間の表し方の道具が違うだけで、「今とつながっているか」を伝えたいという気持ちは共通しています。自分の母語の中にある“隠れ完了形”に気づくと、英語の完了形もぐっと身近に感じられるはずです。
最終まとめ(暗記カード)
- 完了形=過去から基準時に刺さる矢印。今に刺せば現在完了、過去なら過去完了、未来なら未来完了
- have p.p.=過去の出来事を「今」持っている(I've lost my key.=今もない)
- 3用法:完了・結果(just, already, yet)/経験(ever, never, ~ times)/継続(for, since, How long)
- have been to=行ったことがある・行ってきた/have gone to=行ってしまって今いない/have been in=ずっといる
- since+始点(過去形)、for+期間。He died 3 years ago.=It has been 3 years since he died.=He has been dead for 3 years.
- ✕ It has passed … since → ○ ~ have passed since … / ✕ has died for → ○ has been dead for
- yesterday / ago / last / in+年 / just now / When / What time は現在完了と使えない(過去形)
- 肯定文に ever は入れない(✕ I have ever been to …)
- 現在完了進行形=動作の継続・直前までの動作(Have you been crying?)。状態動詞の継続は have p.p.
- 過去完了=過去の基準時より前(大過去)・基準時までの完了/経験/継続。基準時がなければ使えない
- 未来完了=未来の基準時までに(By the time you come, I will have finished.)
- 時・条件の副詞節の中は原則として未来完了→現在完了(after I have finished it)。※意志・依頼の will などの例外は時制の単元で
- had hoped / intended / meant to=実現しなかった願望
- No sooner had S p.p. than S 過去形/Hardly [Scarcely] had S p.p. when [before] S 過去形
- 米口語は Did you eat yet? もあり。入試の文法問題は現在完了が安全
ACTION
この単元の問題 196問に挑戦。まずは20問ドリルから。
ドリルをはじめる