月影

日々の雑感

【大人の学び直し英語】現在完了形(have+過去分詞)完全ガイド!過去形との違い&3用法を音声付きドリルで習得

 

【大人の学び直し英語】現在完了形 (have + 過去分詞) 完全ガイド&演習ドリル

「過去形と何が違うの?」と多くの日本人が迷うのが現在完了形です。

過去形が「昔の話(点)」であるのに対し、現在完了形は「過去から今まで(線)」を表し、常に「今、どうなのか」に焦点があります。この記事では、3つの主要な用法(完了・経験・継続)と、過去形との決定的な違いを、音声付きのドリルで徹底的に練習します。

※答えの「🔊」マークを押すと、英語の発音を確認できます。


1. 基本の形と「完了・結果」の用法

形は have / has + 過去分詞 です。「ちょうど~したところだ」「(結果として)今は~してしまっている」という、現在の状況を表します。

  • just:ちょうど
  • already:すでに(肯定文で)
  • yet:もう(疑問文で) / まだ(否定文で)

これらとセットで使われることが多いです。

【演習】過去分詞と完了のドリル(10問)

  1. 【過去分詞】eat(食べる)→ ?
    答えを見る
    eaten 🔊
    ate ではなく eaten です。
  2. 【過去分詞】see(見る)→ ?
    答えを見る
    seen 🔊
    saw ではなく seen です。
  3. 【過去分詞】go(行く)→ ?
    答えを見る
    gone 🔊
    went ではなく gone です。
  4. 私はちょうど宿題を終えたところです。
    I (  ) just finished my homework.
    答えを見る
    I have just finished my homework. 🔊
    「今終わった」という完了を表します。have + just + 過去分詞 の語順です。
  5. 彼女はすでに昼食を食べました。
    She (  ) already eaten lunch.
    答えを見る
    She has already eaten lunch. 🔊
    主語が She なので has を使います。
  6. もう宿題は終わりましたか?
    Have you finished your homework (  )?
    答えを見る
    Have you finished your homework yet? 🔊
    疑問文の最後につける「もう」は yet です。
  7. いいえ、まだ終わっていません。
    No, I (  ) finished it yet.
    答えを見る
    No, I haven't finished it yet. 🔊
    haven't (have not) と yet で「まだ~ない」を表します。
  8. 彼はすでに寝てしまいました。(結果:ここにはいない)
    He (  ) already (  ) to bed.
    答えを見る
    He has already gone to bed. 🔊
    gone to bed で「寝てしまった(今の状態)」を含みます。
  9. 電車はちょうど出発したところです。
    The train (  ) just left.
    答えを見る
    The train has just left. 🔊
    The train は単数(it)扱いなので has です。
  10. 鍵をなくしてしまいました。(結果:今も持っていない)
    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問)

  1. 私は以前、パリに行ったことがあります。
    I (  ) (  ) to Paris before.
    答えを見る
    I have been to Paris before. 🔊
    「行ったことがある」は have been to です。
  2. 今までにこの本を読んだことはありますか?
    (  ) you (  ) read this book?
    答えを見る
    Have you ever read this book? 🔊
    「今までに」と聞くときは ever を入れます。
  3. 私は一度も納豆を食べたことがありません。
    I have (  ) eaten natto.
    答えを見る
    I have never eaten natto. 🔊
    not ではなく never を使うことで強い否定(経験ゼロ)を表します。
  4. 私たちはその映画を2回見たことがあります。
    We have seen the movie (  ).
    答えを見る
    We have seen the movie twice. 🔊
    2回は two times ではなく twice を使うのが一般的です。
  5. 彼は以前、ここで働いたことがあります。
    He (  ) worked here before.
    答えを見る
    He has worked here before. 🔊
    「以前に」は文末に before を置きます。
  6. 京都には何度行ったことがありますか?
    How many times (  ) you (  ) to Kyoto?
    答えを見る
    How many times have you been to Kyoto? 🔊
    回数を聞くときは How many times です。
  7. 私は一度だけ彼に会ったことがあります。
    I have met him (  ).
    答えを見る
    I have met him once. 🔊
    1回は once です。
  8. 彼女は海外に行ったことがありません。
    She (  ) never (  ) abroad.
    答えを見る
    She has never been abroad. 🔊
    go to abroad ではなく、be abroad / go abroad (副詞) です。
  9. それについて聞いたことがありますか?
    Have you (  ) of it?
    答えを見る
    Have you heard of it? 🔊
    hear (heard) of で「~のことについて聞く(耳にする)」です。
  10. 私は何度もその歌を歌ったことがあります。
    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問)

  1. 私はこの街に5年間住んでいます。
    I have lived in this town (  ) five years.
    答えを見る
    I have lived in this town for five years. 🔊
    「5年間」という期間を表すので for を使います。
  2. 昨日の朝からずっと忙しいです。
    I have been busy (  ) yesterday morning.
    答えを見る
    I have been busy since yesterday morning. 🔊
    「~から(起点)」なので since を使います。
  3. 私たちは子供の頃からお互いを知っています。
    We (  ) (  ) each other since we were children.
    答えを見る
    We have known each other since we were children. 🔊
    know(状態動詞)の継続用法です。
  4. 彼は長い間、病気です。
    He has been sick (  ) a long time.
    答えを見る
    He has been sick for a long time. 🔊
    for a long time(長い間)は決まり文句です。
  5. どのくらい(の期間)ここにいるのですか?
    How (  ) have you been here?
    答えを見る
    How long have you been here? 🔊
    期間を尋ねる疑問詞は How long です。
  6. 月曜日からずっと雨が降っています。
    It (  ) rained since Monday.
    答えを見る
    It has rained since Monday. 🔊
    天気(It)なので has です。
  7. 彼とは3年間会っていません。
    I (  ) seen him for three years.
    答えを見る
    I haven't seen him for three years. 🔊
    継続用法の否定形(~していない)です。
  8. 彼女はこの車を2010年から持っています。
    She (  ) (  ) this car since 2010.
    答えを見る
    She has had this car since 2010. 🔊
    have(持っている)の過去分詞 had を使い、She has had... となります。
  9. 彼が去ってから10年になります。
    It (  ) (  ) ten years since he left.
    答えを見る
    It has been ten years since he left. 🔊
    時間が経過したことを It has been... で表します。
  10. ずっとあなたに会いたかったです。
    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問)

文脈やキーワードを見て、適切な形(過去形 または 現在完了形)を選んでください。

  1. 私は昨日、彼に会いました。
    I ( saw / have seen ) him yesterday.
    答えを見る
    I saw him yesterday. 🔊
    yesterday(過去の一点)があるので過去形 saw です。
  2. 私は彼に2回会ったことがあります。
    I ( saw / have seen ) him twice.
    答えを見る
    I have seen him twice. 🔊
    「今までに2回」という経験なので現在完了形です。
  3. いつ宿題を終えましたか?
    When ( did you finish / have you finished ) your homework?
    答えを見る
    When did you finish your homework? 🔊
    When(いつ)は過去の特定の時を尋ねるため、過去形を使います。
  4. 鍵をなくしてしまいました。(今も持っていない)
    I ( lost / have lost ) my key.
    答えを見る
    I have lost my key. 🔊
    「今困っている」という現在の状況を含むので現在完了形が自然です。
  5. 昨夜、鍵をなくしました。
    I ( lost / have lost ) my key last night.
    答えを見る
    I lost my key last night. 🔊
    last night があるので過去形です。
  6. 彼は2015年に日本に来ました。
    He ( came / has come ) to Japan in 2015.
    答えを見る
    He came to Japan in 2015. 🔊
    in 2015 という特定の過去の時点があるので came です。
  7. もう昼食を食べましたか?
    ( Did you eat / Have you eaten ) lunch yet?
    答えを見る
    Have you eaten lunch yet? 🔊
    yet(もう~した?)は完了用法なので現在完了形を使います。
  8. 彼は3日前にここを出発しました。
    He ( left / has left ) here three days ago.
    答えを見る
    He left here three days ago. 🔊
    ago は過去形と共に使います。
  9. ちょうど駅に着いたところです。
    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(ちょうど)は現在完了形と一緒に使えます。
  10. 昨夜はよく眠れましたか?
    ( Did you sleep / Have you slept ) well last night?
    答えを見る
    Did you sleep well last night? 🔊
    昨夜のことなので Did you... で聞きます。

まとめ

お疲れ様でした!現在完了形の「感覚」、少し掴めましたか?

最初は「過去形と一緒でいいじゃないか」と思うかもしれませんが、ネイティブは「今との繋がり」を意識して明確に使い分けています。「完了」「経験」「継続」のパターンを繰り返し練習して、自然に口から出るようにしましょう!