- 現在完了の3つの用法と,一緒に使えない表現
- 過去完了/未来完了/完了進行形
- 時・条件の副詞節:未来のことも現在形
詳しい説明を読む
時制 Level 1では,現在形・過去形・未来の表現と,進行形・完了形の基本的な考え方を整理しました。このページでは,入試で特によく問われる完了形の用法と,時・条件を表す副詞節の時制を詳しく見ていきます。
現在完了の3つの用法
完了・結果 / 継続 / 経験
どの用法かは,一緒に使われる語句と文脈から判断する
| 用法 | 意味 | よく一緒に使われる語句 |
|---|---|---|
| 完了・結果 | 〜したところだ,〜してしまった | just / already / yet / now |
| 継続 | (ずっと)〜している | for ~ / since ~ / How long ~? |
| 経験 | 〜したことがある | ever / never / before / once / ~ times |
The train has just left.
列車はちょうど出たところだ。
詳しい説明を読む
現在完了には,完了・結果,継続,経験の3つの用法があります。どの用法かは,just / already(完了),for / since(継続),ever / never / before(経験)など一緒に使われる語句と,文脈から判断します。
I have known him since I was a child.
私は子どものころから彼を知っている。
Have you ever been to Hokkaido?
北海道に行ったことはありますか。
have gone to と have been to
have gone to は「〜へ行ってしまった(今ここにいない)」という完了・結果を表します。have been to は「〜へ行ったことがある」という経験,または「〜へ行ってきたところだ」という完了を表します。
He has gone to Paris.
彼はパリへ行ってしまった。(今ここにいない)
I have been to Paris twice.
私はパリへ2回行ったことがある。
for と since
for の後ろには「期間」(for three years),since の後ろには「起点」(since 2020,since I was a child)がきます。
「〜してから…になる」の書き換え
次の4つの文は,ほぼ同じ内容を表します。入試の書き換え問題で頻出です。
He died ten years ago.
彼は10年前に亡くなった。
He has been dead for ten years.
彼が亡くなって10年になる。
It has been ten years since he died.(It is ten years since ~ とも言う)
彼が亡くなってから10年になる。
Ten years have passed since he died.
彼が亡くなってから10年が経った。
現在完了と一緒に使えない表現
はっきりと過去の時点を表す語句 → 過去形を使う
| 現在完了と使えない | 例 |
|---|---|
| 過去の時点を表す語句 | yesterday / last ~ / ~ ago / in 2020 / just now |
| 過去の時点をたずねる疑問詞 | When ~? |
I saw him yesterday.(× have seen)
私は昨日彼に会った。
詳しい説明を読む
現在完了は「現在」とつながる時制なので,yesterday,last week,~ ago,when で始まる疑問文のように,はっきりと過去の時点を表す語句とは一緒に使えません。その場合は過去形を使います。
When did you finish your homework?(× When have you finished)
あなたはいつ宿題を終えたのですか。
just は現在完了と一緒に使えますが,just now(ついさっき)は過去の時点を表すので,過去形と一緒に使います。
過去完了
過去完了=had + 過去分詞
過去のある時点「まで」の完了・結果,継続,経験
過去の2つの出来事のうち,より前の出来事(大過去)
When I arrived at the station, the train had already left.
私が駅に着いたとき,列車はすでに出てしまっていた。
詳しい説明を読む
過去完了は had + 過去分詞 の形で,過去のある時点「まで」の完了・結果,継続,経験を表します。また,過去の2つの出来事のうち,より前に起きた出来事(大過去)を表すのにも使います。
過去完了は,現在完了の基準点を「現在」から「過去のある時点」に移したものです。
I had lived in Kobe for five years before I moved to Tokyo.
東京に引っ越す前,私は神戸に5年間住んでいた。
I had never seen a panda until I visited China.
中国を訪れるまで,私はパンダを見たことがなかった。
She lost the watch that her father had given her.
彼女は父親がくれた腕時計をなくした。
前後関係が明らかな場合
before や after などによって出来事の前後関係が明らかな場合は,過去完了を使わずに過去形で表すこともよくあります。
I went out after I finished my homework.
私は宿題を終えてから出かけた。
未来完了
未来完了=will have + 過去分詞
未来のある時点「まで」の完了・結果,継続,経験
I will have finished my homework by the time you come back.
あなたが戻ってくるまでには,私は宿題を終えているだろう。
詳しい説明を読む
未来完了は will have + 過去分詞 の形で,未来のある時点「まで」の完了・結果,継続,経験を表します。by ~「~までに」などで,基準となる未来の時点を示すことが多い形です。
By next April, I will have lived here for three years.
来年の4月で,私はここに3年間住んでいることになる。
If I visit Kyoto again, I will have been there three times.
もう一度京都を訪れれば,私はそこへ3回行ったことになる。
完了進行形
have been + doing
動作動詞の「継続」を表す
I have known him for years.(状態動詞)
私は何年も前から彼を知っている。
詳しい説明を読む
完了進行形は have been + doing の形で,動作動詞の「継続」を表します。
継続を表すとき,状態動詞は完了形,動作動詞は完了進行形を使うのが基本です。
I have been waiting for you for two hours.(動作動詞)
私はあなたを2時間ずっと待っている。
It had been raining for three days when we arrived.
私たちが到着したとき,3日間雨が降り続いていた。
時・条件を表す副詞節の時制
時・条件を表す副詞節の中では,未来のことも現在形で表す
when / before / after / until / as soon as / if / unless など
I will call you when I get home.(× when I will get home)
家に着いたら電話します。
詳しい説明を読む
時や条件を表す副詞節(when,before,after,until,as soon as,if,unless などで始まる節)の中では,未来のことでも will を使わず,現在形で表します。
If it rains tomorrow, we will stay home.(× If it will rain)
明日雨が降ったら,私たちは家にいます。
I will lend you the book when I have read it.
読み終わったら,その本を貸してあげます。
この規則が当てはまるのは副詞節だけです。同じ when や if でも,名詞節の場合は未来のことに will を使います。
I don't know when he will come.
彼がいつ来るのか,私は知らない。
I wonder if it will rain tomorrow.
明日雨が降るだろうか。
副詞節か名詞節かの見分け方
when 節や if 節を取り除いても文が成り立つなら副詞節,取り除くと文が成り立たない(目的語Oなどが欠ける)なら名詞節です。
I will call you [when I get home]. → I will call you. で文が成り立つので副詞節
I don't know [when he will come]. → I don't know. だけでは「何を」知らないのかが欠けるので名詞節
名詞節と副詞節については,「接続詞 Level 1」でも扱います。
時制を見たら確認しよう
基準点はいつか → 現在・過去・未来
基準点までのつながりはあるか → 完了形
副詞節か名詞節か → 副詞節なら未来でも現在形
→ 基準点は現在:今までずっと住んでいる
I had lived here for ten years when I met her.
→ 基準点は過去:彼女に会った時点までずっと住んでいた
I will have lived here for ten years next spring.
→ 基準点は未来:来年の春の時点で10年住んでいることになる