B1 · 中級 TOEIC 405–600 IELTS 4.0–5.0 時制とアスペクト

現在完了形(発展)

現在完了形を深く学ぼう。for/since、just/already/yet/still、Past Simpleとの重要な違いを理解できる。

シェア: コピーしました!

現在完了形とは何か:現在完了形の使い方をゼロから理解する

「現在完了形(Present Perfect)」は、日本語にはない発想の時制です。日本語の「〜した」という過去形の感覚だけで英語の現在完了形を捉えようとすると、必ずどこかでつまずきます。まず結論からお伝えすると、現在完了形は過去に起きた出来事を「今の視点」から見た文法形式です。過去形が「過去のある時点の出来事を、過去の話として語る」のに対し、現在完了形は「過去の出来事が、今の状態や今の話にどうつながっているか」を表します。

この違いは、英語のネイティブスピーカーにとっては呼吸をするように自然な感覚ですが、日本語ネイティブの学習者にとっては最初の大きな壁になります。日本語では「〜た」という助動詞ひとつで、英語の過去形と現在完了形の両方の意味をカバーしてしまうため、頭の中で明確に区別する訓練が必要です。

さらに本トピックでは、単純な現在完了形(have/has + 過去分詞)だけでなく、その拡張形である現在完了進行形(have/has been + 現在分詞)まで含めて、体系的に整理していきます。TOEIC・英検・大学入試のいずれでも頻出のポイントであり、日常英会話でも非常によく使われる形なので、ここでしっかり基礎を固めましょう。

現在完了形の形(公式)と否定文・疑問文の作り方

現在完了形の基本公式は次の通りです。

用法 形(公式) 例文
肯定文 主語 + have/has + 過去分詞 I have finished my homework.(宿題を終えました)
否定文 主語 + have/has + not + 過去分詞 She has not (hasn't) finished her homework.(彼女は宿題を終えていません)
疑問文 Have/Has + 主語 + 過去分詞 ...? Have you finished your homework?(宿題は終わりましたか)
疑問詞疑問文 疑問詞 + have/has + 主語 + 過去分詞 ...? How long have you lived here?(ここにはどのくらい住んでいますか)

主語による have / has の使い分けは中学英語の基本事項ですが、意外と焦ると間違えるポイントなので確認しておきます。

主語 使う助動詞
I / You / We / They / 複数名詞 have
He / She / It / 単数名詞 has

続いて、現在完了形をさらに拡張した「現在完了進行形」の公式も押さえておきましょう。動作の「継続中である感じ」を強調したいときに使う形です。

用法 形(公式) 例文
肯定文 主語 + have/has been + 現在分詞(-ing形) I have been studying English for three years.(英語を3年間ずっと勉強しています)
否定文 主語 + have/has not been + 現在分詞 He hasn't been feeling well recently.(彼は最近体調がすぐれません)
疑問文 Have/Has + 主語 + been + 現在分詞 ...? Have you been waiting long?(長く待っていますか)

学習のポイントとして、現在完了形(have + 過去分詞)は「結果・完了・経験」に焦点を当て、現在完了進行形(have been + -ing)は「動作がずっと続いている、その臨場感」に焦点を当てる、とざっくり区別すると理解しやすくなります。

現在完了形の4つの主な用法を例文で理解する

現在完了形には大きく分けて4つの用法があります。日本の学校英文法でもおなじみの分類ですが、ここでは実際に使えるレベルまで例文とともに丁寧に見ていきます。

  1. 完了・結果:ある動作がたった今終わったこと、またはその結果が今も残っていることを表す。しばしば just, already, yet と一緒に使われる。
  2. I have just finished my report.(ちょうどレポートを終えたところです)
  3. She has already left the office.(彼女はすでにオフィスを出ました)
  4. Have you finished dinner yet?(もう夕食は終わりましたか)

  5. 経験:これまでの人生の中で「〜したことがある」という経験を表す。ever, never, before, once, twice などと相性が良い。

  6. I have been to Paris twice.(パリに2回行ったことがあります)
  7. Have you ever eaten natto?(納豆を食べたことはありますか)
  8. She has never seen snow.(彼女は雪を見たことがありません)

  9. 継続:過去のある時点から現在まで、状態がずっと続いていることを表す。for(〜の間)、since(〜以来)とセットで使われることが非常に多い。

  10. I have lived in Tokyo for ten years.(東京に10年間住んでいます)
  11. We have known each other since we were children.(子供の頃からずっと知り合いです)

  12. 現時点までの回数・累積:ある行為が現在までに何回行われたかを表す。

  13. He has visited Japan three times.(彼は日本を3回訪れたことがあります)
  14. I have read this book several times.(この本は何度も読んだことがあります)

いずれの用法にも共通するのは、「過去の出来事」でありながら、話し手の意識が常に「今」に向いているという点です。これが現在完了形を理解するうえでの核心です。

現在完了進行形との違い:動作の継続を強調する使い方

現在完了形(継続用法)と現在完了進行形は、どちらも「過去から現在まで続いていること」を表しますが、ニュアンスに違いがあります。この違いは日本人学習者が特に混同しやすいポイントなので、比較表で整理します。

項目 現在完了形(have + 過去分詞) 現在完了進行形(have been + -ing)
焦点 状態そのもの、結果、継続している事実 動作が今も進行中であるという臨場感・一時性
相性の良い動詞 状態動詞(know, live, believe, own など) 動作動詞(work, study, wait, rain など)
例文 I have lived here for 5 years.(5年間住んでいます=状態) I have been living here for 5 years.(5年間ずっと住み続けている=継続中の実感)
ニュアンス 客観的な事実の提示 「ずっと〜し続けている」という動きの継続を強調
完了の含み 動作が今まさに終わったことも表せる(結果に注目) 動作の余韻・影響が今も残っていることを示唆(例:Why are you wet? — I have been washing the car.)

例文で比較してみましょう。

  • I have written three emails this morning.(今朝メールを3通書きました)→ 完了した結果(3通という数字)に焦点
  • I have been writing emails all morning.(今朝はずっとメールを書き続けています)→ 動作が継続している過程に焦点

なお、know, believe, love, own, belong などの状態動詞は原則として進行形にしないため、現在完了進行形ではなく現在完了形(継続用法)を使います。

  • ⭕ I have known him for ten years.(彼を10年前から知っています)
  • ❌ I have been knowing him for ten years.

現在完了形と過去形の違い:時を表す語句で見分けるコツ

日本人学習者が最もつまずきやすいのが、この「現在完了形 vs 過去形」の使い分けです。日本語では両方とも「〜した」と訳されるため、頭の中で区別する意識を持つことが不可欠です。

項目 過去形 現在完了形
視点 過去のその時点の出来事として語る 今の視点から過去を振り返る
「今」とのつながり ない(過去は過去で完結) ある(結果・影響が今も残る)
具体的な過去の時を示す語句 yesterday, last week, in 2020, ... ago などと一緒に使える これらの語句と一緒に使えない
相性の良い語句 yesterday, last night, ... ago, when I was a child just, already, yet, ever, never, since, for, so far
例文 I saw that movie last night.(昨夜その映画を見ました) I have seen that movie three times.(その映画を3回見たことがあります)

特に重要なルールとして、yesterday, last year, ... ago, in 2020 のように「過去の特定の時点」を示す語句は、現在完了形と一緒には使えません。これは英検・TOEICでも頻出の文法ポイントです。

  • ⭕ I visited Kyoto last year.(去年京都を訪れました)
  • ❌ I have visited Kyoto last year.
  • ⭕ I have visited Kyoto twice.(京都を2回訪れたことがあります)

since と for の使い分け:継続用法をマスターする

現在完了形の継続用法では since と for の使い分けが頻出です。この2つは意味が似ているため混同されがちですが、明確なルールがあります。

語句 意味 後に続く形 例文
for 「〜の間」(期間の長さ) 期間を表す語句(three years, a long time, two weeks など) I have studied English for three years.(3年間英語を勉強しています)
since 「〜以来」(起点となる時点) 過去の一時点(2020, last April, I was a child など) I have studied English since 2020.(2020年から英語を勉強しています)

学習のポイントとして、「期間の長さ」を答えるなら for、「いつから始まったか」を答えるなら since、と覚えると迷いません。since の後には節(主語+動詞)が来ることもある点も押さえておきましょう(例:since I moved to Tokyo)。

日本人が間違えやすい現在完了形のポイント

❌ 誤った英文 ⭕ 正しい英文 なぜ間違いなのか
I have went to Osaka yesterday. I went to Osaka yesterday. yesterday(過去の特定の時点)があるため過去形を使う。現在完了形と過去の特定時点を示す語句は共存できない。
I have finished my homework already yesterday. I finished my homework already yesterday. / I have already finished my homework. already は現在完了形とも過去形とも使えるが、yesterday がある場合は過去形を優先する。
I am living here since 2015. I have been living here since 2015. / I have lived here since 2015. since(〜以来、今も継続)がある場合は現在完了(進行)形を使う。現在進行形では「今も続いている」というつながりを表せない。
He has went there before. He has been there before.(他にも He has gone there. 参照) went は過去分詞ではない。過去分詞は gone(またはbeen)。have/has の後は必ず過去分詞。
I have known him since 3 years. I have known him for 3 years. 期間の長さを表すときは for。since は起点(時点)を表す語とセットで使う。
I have been to Tokyo now.(今まさに東京にいる、のつもりで) I am in Tokyo now. have been to は「行ったことがある(経験)」または「行って戻ってきた」の意味。今その場にいることは表せない。
Did you ever eat sushi? (経験を尋ねたいのに単純に過去形で聞いてしまう) Have you ever eaten sushi? 「これまでの人生で」という経験のニュアンスを出すには現在完了形を使う。

日本語の「〜したことがある」という表現につられて、have been to(経験)と have gone to(行ってしまって今ここにいない)を混同するのもよくあるミスです。

  • I have been to London.(ロンドンに行ったことがある=経験、今はここにいる)
  • He has gone to London.(彼はロンドンに行ってしまった=今ここにいない)

現在完了形を使った自然な英語例文

さまざまな主語・場面で使われる、日常的で自然な現在完了形の例文を確認しましょう。

  • She has just arrived at the airport.(彼女はちょうど空港に着いたところです)
  • We have never tried Ethiopian food before.(私たちはエチオピア料理を食べたことがありません)
  • They have lived in this apartment since 2018.(彼らは2018年からこのアパートに住んでいます)
  • My brother has already bought the concert tickets.(兄はすでにコンサートのチケットを買いました)
  • I haven't decided what to have for lunch yet.(まだ昼食に何を食べるか決めていません)
  • Have you finished reading that novel yet?(その小説はもう読み終わりましたか)
  • The company has been working on this project for six months.(その会社はこのプロジェクトに6か月間取り組み続けています)
  • It has been raining since this morning.(今朝からずっと雨が降っています)
  • How many countries have you visited so far?(これまでにいくつの国を訪れましたか)
  • I have been waiting for you for over an hour!(1時間以上もあなたを待っているんですよ)

最後の例文のように、現在完了進行形は話し手の「不満」「驚き」といった感情を伴うことが多く、単なる事実描写以上のニュアンスを持つ点にも注目してください。

まとめ:現在完了形・現在完了進行形の核心ルール

  • 現在完了形(have/has + 過去分詞)は、過去の出来事を「今の視点」から捉える時制であり、「完了・結果」「経験」「継続」「回数」の4つの用法がある。
  • 現在完了進行形(have/has been + -ing)は、動作が今も継続している臨場感を強調するときに使う。状態動詞には基本的に使わない。
  • yesterday, last week, ... ago など「過去の特定時点」を示す語句とは一緒に使えない。その場合は過去形を使う。
  • just, already, yet, ever, never, so far は現在完了形と相性が良い代表的な語句。
  • for は「期間の長さ」、since は「起点となる時点」を表す。継続用法では正しく使い分ける。
  • have been to(行ったことがある=経験)と have gone to(行ってしまった=不在)は意味が異なるので混同しないこと。
  • 日本語の「〜した」に引きずられず、「今とのつながりがあるかどうか」を基準に過去形と現在完了形を使い分ける意識を持つことが上達の近道です。
シェア: コピーしました!

現在完了形(発展) — 練習問題 2

英文法トピック現在完了形(発展)を10問の選択式問題で練習しましょう。合格するには少なくとも70%を正解する必要があります。

10 問 合格スコア: 70% テスト 2 /10 回答済み

テストの受け方

  • 各問題をよく読み、最も適切な答えを選んでください。
  • このテストに制限時間はありません — ご自身のペースで進められます。
  • クリック テストを提出 終わったらスコアと詳しい解説を確認しましょう。

ログインして結果を保存する

ログインせずにこのテストを受けることもできますが、結果は保存されません。 ログイン 進捗を記録しましょう。

  1. 1

    I ___ you for ages!

  2. 2

    So far this month, we ___ over a thousand new customers.

  3. 3

    My parents ___ to visit me next month.

  4. 4

    I ___ to him on the phone for the last hour.

  5. 5

    We ___ our tickets for the concert.

  6. 6

    The baby ___ crying.

  7. 7

    She's a great writer. She ___ ten novels.

  8. 8

    Look at the time! I can't believe we ___ here for four hours.

  9. 9

    He ___ a lot since you last saw him.

  10. 10

    We ___ to this restaurant before.