【大人の学び直し英語】現在完了形 (have + 過去分詞) 完全ガイド&演習ドリル
「過去形と何が違うの?」と多くの日本人が迷うのが現在完了形です。
過去形が「昔の話(点)」であるのに対し、現在完了形は「過去から今まで(線)」を表し、常に「今、どうなのか」に焦点があります。この記事では、3つの主要な用法(完了・経験・継続)と、過去形との決定的な違いを、音声付きのドリルで徹底的に練習します。
※答えの「🔊」マークを押すと、英語の発音を確認できます。
1. 基本の形と「完了・結果」の用法
形は have / has + 過去分詞 です。「ちょうど~したところだ」「(結果として)今は~してしまっている」という、現在の状況を表します。
- just:ちょうど
- already:すでに(肯定文で)
- yet:もう(疑問文で) / まだ(否定文で)
これらとセットで使われることが多いです。
【演習】過去分詞と完了のドリル(10問)
-
【過去分詞】eat(食べる)→ ?
答えを見る
eaten 🔊ate ではなく eaten です。 -
【過去分詞】see(見る)→ ?
答えを見る
seen 🔊saw ではなく seen です。 -
【過去分詞】go(行く)→ ?
答えを見る
gone 🔊went ではなく gone です。 -
私はちょうど宿題を終えたところです。
I ( ) just finished my homework.答えを見る
I have just finished my homework. 🔊「今終わった」という完了を表します。have + just + 過去分詞 の語順です。 -
彼女はすでに昼食を食べました。
She ( ) already eaten lunch.答えを見る
She has already eaten lunch. 🔊主語が She なので has を使います。 -
もう宿題は終わりましたか?
Have you finished your homework ( )?答えを見る
Have you finished your homework yet? 🔊疑問文の最後につける「もう」は yet です。 -
いいえ、まだ終わっていません。
No, I ( ) finished it yet.答えを見る
No, I haven't finished it yet. 🔊haven't (have not) と yet で「まだ~ない」を表します。 -
彼はすでに寝てしまいました。(結果:ここにはいない)
He ( ) already ( ) to bed.答えを見る
He has already gone to bed. 🔊gone to bed で「寝てしまった(今の状態)」を含みます。 -
電車はちょうど出発したところです。
The train ( ) just left.答えを見る
The train has just left. 🔊The train は単数(it)扱いなので has です。 -
鍵をなくしてしまいました。(結果:今も持っていない)
I ( ) ( ) my key.答えを見る
I have lost my key. 🔊単に「なくした」だけでなく「だから今、部屋に入れない」といった今の状況を伝えます。
2. 「経験」の用法(~したことがある)
生まれてから今までの間に「~した経験がある」といいたい場合に使います。
- ever:今までに(疑問文で)
- never:一度も~ない(否定の意味)
- before:以前に
- once / twice / ~ times:1回/2回/~回
Point: 「行ったことがある」は have been to を使います。(have gone to だと「行ってしまった」になるので注意!)
【演習】経験を語るドリル(10問)
-
私は以前、パリに行ったことがあります。
I ( ) ( ) to Paris before.答えを見る
I have been to Paris before. 🔊「行ったことがある」は have been to です。 -
今までにこの本を読んだことはありますか?
( ) you ( ) read this book?答えを見る
Have you ever read this book? 🔊「今までに」と聞くときは ever を入れます。 -
私は一度も納豆を食べたことがありません。
I have ( ) eaten natto.答えを見る
I have never eaten natto. 🔊not ではなく never を使うことで強い否定(経験ゼロ)を表します。 -
私たちはその映画を2回見たことがあります。
We have seen the movie ( ).答えを見る
We have seen the movie twice. 🔊2回は two times ではなく twice を使うのが一般的です。 -
彼は以前、ここで働いたことがあります。
He ( ) worked here before.答えを見る
He has worked here before. 🔊「以前に」は文末に before を置きます。 -
京都には何度行ったことがありますか?
How many times ( ) you ( ) to Kyoto?答えを見る
How many times have you been to Kyoto? 🔊回数を聞くときは How many times です。 -
私は一度だけ彼に会ったことがあります。
I have met him ( ).答えを見る
I have met him once. 🔊1回は once です。 -
彼女は海外に行ったことがありません。
She ( ) never ( ) abroad.答えを見る
She has never been abroad. 🔊go to abroad ではなく、be abroad / go abroad (副詞) です。 -
それについて聞いたことがありますか?
Have you ( ) of it?答えを見る
Have you heard of it? 🔊hear (heard) of で「~のことについて聞く(耳にする)」です。 -
私は何度もその歌を歌ったことがあります。
I have sung that song ( ) times.答えを見る
I have sung that song many times. 🔊何度も=many times です。
3. 「継続」の用法(ずっと~している)
過去のある時点から「今」まで、状態がずっと続いていることを表します。
- for + 期間:~の間(for 3 years, for a week)
- since + 起点:~以来、~から(since yesterday, since I was a child)
【演習】継続を表すドリル(10問)
-
私はこの街に5年間住んでいます。
I have lived in this town ( ) five years.答えを見る
I have lived in this town for five years. 🔊「5年間」という期間を表すので for を使います。 -
昨日の朝からずっと忙しいです。
I have been busy ( ) yesterday morning.答えを見る
I have been busy since yesterday morning. 🔊「~から(起点)」なので since を使います。 -
私たちは子供の頃からお互いを知っています。
We ( ) ( ) each other since we were children.答えを見る
We have known each other since we were children. 🔊know(状態動詞)の継続用法です。 -
彼は長い間、病気です。
He has been sick ( ) a long time.答えを見る
He has been sick for a long time. 🔊for a long time(長い間)は決まり文句です。 -
どのくらい(の期間)ここにいるのですか?
How ( ) have you been here?答えを見る
How long have you been here? 🔊期間を尋ねる疑問詞は How long です。 -
月曜日からずっと雨が降っています。
It ( ) rained since Monday.答えを見る
It has rained since Monday. 🔊天気(It)なので has です。 -
彼とは3年間会っていません。
I ( ) seen him for three years.答えを見る
I haven't seen him for three years. 🔊継続用法の否定形(~していない)です。 -
彼女はこの車を2010年から持っています。
She ( ) ( ) this car since 2010.答えを見る
She has had this car since 2010. 🔊have(持っている)の過去分詞 had を使い、She has had... となります。 -
彼が去ってから10年になります。
It ( ) ( ) ten years since he left.答えを見る
It has been ten years since he left. 🔊時間が経過したことを It has been... で表します。 -
ずっとあなたに会いたかったです。
I ( ) wanted to see you for a long time.答えを見る
I have wanted to see you for a long time. 🔊want(状態)の継続です。
4. 最重要:過去形 vs 現在完了形
ここが最大の落とし穴です。「過去の特定の時」を表す言葉がある場合は、絶対に現在完了形を使えません。
- 現在完了形で使えない語(過去形を使う):
yesterday(昨日), last night(昨夜), two days ago(2日前), in 2010(2010年に), when(いつ~したか)
ルール: 「いつ?」と聞いたり答えたりするなら過去形。「今どうなってる?」なら現在完了形。
【演習】時制の使い分けドリル(10問)
文脈やキーワードを見て、適切な形(過去形 または 現在完了形)を選んでください。
-
私は昨日、彼に会いました。
I ( saw / have seen ) him yesterday.答えを見る
I saw him yesterday. 🔊yesterday(過去の一点)があるので過去形 saw です。 -
私は彼に2回会ったことがあります。
I ( saw / have seen ) him twice.答えを見る
I have seen him twice. 🔊「今までに2回」という経験なので現在完了形です。 -
いつ宿題を終えましたか?
When ( did you finish / have you finished ) your homework?答えを見る
When did you finish your homework? 🔊When(いつ)は過去の特定の時を尋ねるため、過去形を使います。 -
鍵をなくしてしまいました。(今も持っていない)
I ( lost / have lost ) my key.答えを見る
I have lost my key. 🔊「今困っている」という現在の状況を含むので現在完了形が自然です。 -
昨夜、鍵をなくしました。
I ( lost / have lost ) my key last night.答えを見る
I lost my key last night. 🔊last night があるので過去形です。 -
彼は2015年に日本に来ました。
He ( came / has come ) to Japan in 2015.答えを見る
He came to Japan in 2015. 🔊in 2015 という特定の過去の時点があるので came です。 -
もう昼食を食べましたか?
( Did you eat / Have you eaten ) lunch yet?答えを見る
Have you eaten lunch yet? 🔊yet(もう~した?)は完了用法なので現在完了形を使います。 -
彼は3日前にここを出発しました。
He ( left / has left ) here three days ago.答えを見る
He left here three days ago. 🔊ago は過去形と共に使います。 -
ちょうど駅に着いたところです。
I ( arrived / have arrived ) at the station just now.答えを見る
I arrived at the station just now. / I have just arrived at the station. 🔊ここが少し難しい点です。just now(たった今)は過去時制扱いで過去形を使います。just(ちょうど)は現在完了形と一緒に使えます。 -
昨夜はよく眠れましたか?
( Did you sleep / Have you slept ) well last night?答えを見る
Did you sleep well last night? 🔊昨夜のことなので Did you... で聞きます。
まとめ
お疲れ様でした!現在完了形の「感覚」、少し掴めましたか?
最初は「過去形と一緒でいいじゃないか」と思うかもしれませんが、ネイティブは「今との繋がり」を意識して明確に使い分けています。「完了」「経験」「継続」のパターンを繰り返し練習して、自然に口から出るようにしましょう!