今回は現在完了・過去完了・未来完了の違い、見分け方を中心に学習します。
3種類の完了形の違いを解説、見分け方のコツと英作文の考え方を解説していきます。見分けるための練習なので、できるだけ簡単な英文を使って説明しています。
現在完了・過去完了・未来完了の使い分けに自信がないという人は、解説を読んだ後にまとめ問題で理解できたかチェックしてみましょう。
現在完了・過去完了・未来完了の違い
- 現在完了【have/has + 過去分詞】は「過去→現在」の継続・経験・完了・結果
- 過去完了【had + 過去分詞】は「古い過去→過去」の継続・経験・完了・結果 (+大過去)
- 未来完了【will have + 過去分詞】は「過去や現在→未来」の継続・経験・完了・結果
※ 特に動作の継続では完了進行形【have + been + ~ing】が使われます。
過去完了形の大過去は例外として、現在完了なら現在までの、過去完了なら過去までの、未来完了なら未来までの継続・経験・完了・結果を現しています。
上記の「違い」を頭に入れておいた上で、次に各完了形の見分け方を簡単な文章を使った問題で確認していきます。
現在完了・過去完了・未来完了の見分け方
日本語訳からどの時制を使って使って英文を作れば良いのか、見分け方を確認していきましょう。完了形だけでなく、他の時制も混合した問題で考えてみます。
完了形の見分け方 英作文問題
例えば次のような文を英語にするとき、どの時制を使ったら良いのでしょうか。完了形を使う必要があるのはどれでしょう。
・私たちは10年間東京に住んでいます。
・彼は東京に引っ越すまでは、大阪に20年間住んでいました。
・彼は20年前大阪に住んでいました。
・彼は東京へ行ってしまった。
・私は来月で20年、東京に住んでいることになります。
まず、
・私たちは10年間東京に住んでいます。
という文ですが、過去(10年前)に東京に引っ越してきて、今までずっと住んでいるという「過去→現在」の継続を示しています。そのため現在完了を使って表せます。
・We have lived in Tokyo for ten yeas.
次の2つの文の訳をまとめて考えてみましょう。
・彼は東京に引っ越すまでは、大阪に20年間住んでいました。
・彼は20年前大阪に住んでいました。
どちらも「住んでいました」で終わっていますが、時制が変わってきます。
「東京に引っ越すまでは、大阪に20年間住んでいました。」→ 古い過去から新しい過去まで大阪に住んでいた、つまり「古い過去→過去」の継続となるので過去完了を使って表わせます。
・He had lived in Osaka for twenty years when I moved to Tokyo.
一方、「20年前大阪に住んでいました。」→ 過去のある時点(20年前)でのお話で、過去から過去のある時点まで、という連続性が感じられませんよね。そのため普通の過去形が使われて、
・He lived in Osaka twenty years ago.
という文になります。
過去形ではlast ~、~ ago、just now など、過去の一時点を表す副詞句がよく使われます。
過去完了形では when や before を使った副詞節をあわせて使われています。
次の文はどうでしょうか。
・彼はもう東京へ行ってしまった。
東京へ行ったという過去があって、現在彼はもうここにはいない、つまり「過去→現在」の結果と考えられるので、現在完了形を使って英文を作ります。
・He has already gone to Tokyo.
次の文はどうでしょうか。
・私は来月で20年、東京に住んでいることになります。
将来の話をしているので未来形ということは予想できますが、過去に東京に来て、来月で20年間東京に住むことになる、つまり「過去→未来」の継続を表しているので、未来完了形を使って英文を作ります。
I will have lived in Tokyo for 20 years by next month.
なお動作動詞(play, study, run, walk など)を使って継続の意味を表したいときは、I have been studying English for three hours. のように完了進行形を使います。(過去、未来完了でも同様)
完了形の見分け方 選択問題
日本語訳がないのに、適切な時制を選ばなければならない問題もよくありますよね。
次の[ ]内から最も適切な語句を選びましょう。
・I[ have known, knew, had known, will have known ]him before he became a famous singer.
before he became a famous singer より、彼のことを知っていたのはさらに前から。過去のある時点からある時点までの継続なので過去完了、したがって had known が正解です。過去完了は単独では使わず、特に継続では過去を表すbefore~、when ~ 節などと一緒に使われます。
・I [ have finished, finished, have finished, will have finished ]my report by the time he comes back.
by the time ~ は未来完了の「完了」の意味でよく使われる副詞節です。by the time he comes back より彼が戻ってくるのは未来なので、未来のある時点にはレポートが完了していること示していますので、未来完了形の will have finished が正解です。
ちなみに経験では if節 がよく使われます。(例 She will have been to L.A. ten times if she goes there next month.)
・I [ have studied, have been studying, had studied, had been studying ]English for three hours.
for three hours が使われている上、特に他の副詞節もないので現在完了と考えられます。ただし study という動作動詞から、現在完了進行形の have been studying が最も適しています。
【問題編】現在完了・過去完了・未来完了のまとめ
問1 次の日本語の文に合うように、[ ]内の語を適切な形にしなさい。
(1) 彼は4歳からピアノを弾いている。
He [ play ]the piano since he was 4 years old.
(2) 彼女は彼が有名な歌手になる前から知っていた。
She[ know ]him before he became a famous singer.
(3) もし私がまたその映画を見れば、それを3回見たことになります。
If I watch the movie, I [ watch ]it three times .
(4) 彼はスペインへ行ってしまった。
He [ go ] to Spain.
(5) 彼は母親が帰ってくるまでに宿題を終えるだろう。
He [ finish ]his homework by the time his mother comes home.
問2 次の[ ]内の語から最も適切なものを選びなさい。
(1) She[has finished, had finished, will have finished] knitting a scarf by tomorrow.
(2) We[have just finished, had been finishing, had just finished]dinner when he got home.
(3) She[was, has been, had been]absent from school last week.
(4) She[ has been, has gone, will have been, will have gone ]to China three times if she goes there next month.
(5) She[ has been, had been, will have been ]abroad many times before she studied abroad.
まとめ
現在完了・過去完了・未来完了形の違いと見分け方、問題の解き方について見てきました。
「行ってしまった(今はここにいない)」という意味では現在完了に、when や before など過去を表す副詞節などをともない、過去のある時点までに完了したことを伝えたければ過去完了になります。未来完了の経験では if を伴うことが多いのも特徴です。
また動作動詞の継続で完了進行形を使うのは、現在完了・過去完了・未来完了でも共通です。