英語の現在完了形(have+過去分詞)とは?3つの用法をわかりやすく解説

現在完了の継続用法のイメージ図その2 時制

現在完了は日本語にはない時制なので苦手にしている人も多いと思います。この記事では図解と例文を使って現在完了の意味をわかりやすく解説しました。

42冊の参考書を研究し、塾講師や家庭教師の経験を活かしています。

この記事を読み終わるころには、大学入試・英検・TOEICなどで、現在完了の文法問題が解けるようになっていますので、是非参考にしてみて下さい。

なお、記事の最後には、大学入試の過去問を中心とした練習問題も5題ほど掲載しています。こちらもあわせて参考にしてみて下さい。

現在完了形とは?

現在完了形はhave[has]+過去分詞で表します。

そして次の2つの文の意味の違いを知れば、現在完了形を理解することができます。

①I lost my wallet.

②I have lost my wallet.

①・②ともに、日本語訳は「私は財布をなくした」ですが、①は「過去に財布をなくした」と単なる過去の一時点を表しています。

過去形のイメージ図

それに対して②「I have lost my wallet.」では「過去に財布をなくしてしまって今も困っている」のように過去から現在へのつながりが表現されています。

現在完了形のイメージ図

これが過去形と現在完了形の違いです。まとめると下記のようになります。

  • 過去形→過去の一時点を表す
  • 現在完了→「過去から現在へのつながり」を表す

さて、現在完了には3つの用法があります。

  • 継続用法
  • 経験用法
  • 完了・結果用法

ここからは、これら3つの用法を順番に解説していきます。

①継続用法

継続用法は「過去から今までずっと~している」という意味です。まずは例文を確認してみましょう。

(例文1)I have lived in Kyoto for two years.(私は2年間京都に住んでいる)

この例文は「2年前~現在まで京都に住み続けている」という内容を表しています。「I have lived」のイメージを図解すると下図のようになります。

現在完了の継続用法のイメージ図

どの用法であっても、現在完了の基本イメージは「過去から現在へのつながり」です。

理解を深めるためにもう1つ継続用法の例文を見てみましょう。

(例文2)We have known each other since 1970.(私たちは1970年以来の知り合いだ)

(例文2)は「1970年~現在までずっと知り合いだ」という意味です。つまり、1970年以来の古い付き合いであり、「現在もその関係が続いている」という「過去から現在へのつながり」を表しています。

現在完了の継続用法のイメージ図その2

継続用法でよく使われる副詞

さて、継続用法と他の用法を見分けるコツは継続用法でよく使われる副詞を覚えておくことです。継続用法でよく用いられる副詞には以下のようなものがあります。

  • for+[期間](~の間)
  • since+[時期](~以来)
  • always(いつも)
  • How long~?(どれくらいの間~?)
(例文3)How long have you known Jane?(ジェーンを知ってどのくらいになりますか?)

(例文3)の場合、「How long~(どのくらいの間~?)」が使われていることから、《継続用法》の例文だとわかります。

なお、(例文3)の疑問文に答えるときは、”For about two years.(約2年になります)”のようにします。

②経験用法

現在完了の経験用法は「過去から今までに~したことがある」という意味です。

(例文1)I have been to Canada three times.(私はカナダに3回行ったことがある)

~したことがある/一度も~したことがない」は現在完了を使って表します。

have[has] been to~で「~へ行ったことがある」という意味です。これは現在完了の経験用法で非常によく使われる表現なので熟語のように覚えてしまって下さい。

ただし、have[has] been to~には「ちょうど~へ行ってきたところだ」という意味もあるので要注意です!この意味のhave[has] been toは《完了・結果用法》です。例えば、「I have just been to the station.」で「ちょうど駅へ行ってきたところだ」という意味になります。

ポイントhave[has] been toには「~へ行ったことがある(経験)」と「ちょうど~へ行ってきたところだ(完了)」の2つの意味がある!

(例文2)I have read this book twice.(私は2回その本を読んだことがある)

【語彙】twice(2度)

(例文2)も(例文1)と同様に「過去から現在までに●回~したことがある」を表す例文です。

(例文3)Jane has never missed school.(ジェーンは1度も学校を休んだことがない)

【語彙】miss([学校に]出席しそこなう)

現在完了の否定形はhave[has]の直後にnotneverを置きます。

「~したことがある」も現在完了で表しますが「~したことがない」も広い意味での《経験》なので現在完了形で表します。

さて、経験用法と他の用法を見分けるコツも経験用法でよく使われる「副詞」をおさえることです。

経験用法でよく使われる副詞

  • before(以前に)
  • ever([疑問文で]今までに)
  • never(今までに1度も~ない)
  • once(1回)
  • twice(2回)
  • ~times(~回)
  • many times(何度も)
  • often(何度も)
(例文4)Have you ever seen this movie?(今までにこの映画を観たことがありますか?)

副詞のeverが経験用法の目印になっています。

③完了・結果用法

現在完了の完了・結果用法は「過去に~し終えて今に至る」という意味です。

(例文1)She has gone to Tokyo.(彼女は東京に行った)

完了・結果用法は「現在までに~が完了し、その結果、現在・・・だ」という内容を表します。(例文1)も「彼女は東京に行った[だから今は不在だ]」という意味を表しています。

なお、have[has] gone to~へ行った[今はここにいない)は完了・結果用法の頻出表現なので覚えてしまいましょう。

ちなみに冒頭で紹介した、「I have lost my wallet.」も完了・結果用法です。「財布をなくした、だから今困っている」という意味でしたね。

(例文2)I have already eaten lunch.(私はすでに昼食をすませた)

(例文2)は「私はすでに昼食をすませた[だから今はお腹がいっぱいだ]」という内容を表しています。

このように完了・結果用法では「その結果、現在どうであるか?」が重要なのです。このことからも現在完了の本質は「過去から現在へのつながり」のイメージだとわかりますね。

完了・結果用法でよく使われる副詞

繰り返しになりますが、これら3つの用法を見分けるコツは「副詞」に着目することです。完了・結果用法でよく使われる副詞をまとめました。

  • now(たった今)
  • just(ちょうど今)
  • already(すでに)
  • yet([否定文で]まだ/[疑問文で]もう)
(例文3)I haven’t posted that letter yet.(私はまだその手紙を投函していない[だから手元にある])

yetは否定文で「まだ」という意味になる副詞です。またhave notの短縮形はhaven’tです(has notの短縮形はhasn’t)。

(例文4)Have you finished work yet?(もう仕事は終えましたか?)

yetは疑問文で「もう」という意味です。

現在完了と併用できない副詞

現在完了は「過去から現在へのつながり」を表すので、過去の一時点を表す副詞とは一緒に使うことができません

例えば、When have you visited Kyoto?(×)という文は誤りです。when(いつ?)は過去の一時点を表す表現だからです。

その他にも以下のような過去の一時点を表す副詞とは併用できません。

  • yesterday(昨日)
  • last~last year)
  • ~agotwo years ago)
  • just now(たった今)
ポイント疑問詞のwhen(いつ?)やjust nowなど過去の一時点を表す副詞と現在完了形は一緒に使うことはできない!

現在完了進行形

ここからは、現在完了の《継続用法》の補足です。

まずは「状態動詞とは何か?」というお話しをします。原則として進行形(~ing)にできない動詞のことを状態動詞といいます。

状態動詞には下記のようなものがあります。

  • belong to(~に所属している)
  • resemble(~に似ている)
  • live(住んでいる)
  • like(~を好む)
  • love(~を愛する)
  • want(~したい)
  • know(~知っている)
  • believe(~を信じる)
  • see(~を見る)
  • hear(~を聞く)
  • feel(~を感じる)
  • smell(においがする)
  • taste(味がする)

で、状態動詞以外の動詞を動作動詞といいます。

そして現在完了の継続用法で動作動詞が用いられる場合は、必ず「現在完了進行形」にします

例えば、know状態動詞です。ですからknowを使って継続用法を表すときは、普通にhave[has]+過去分詞の形を用いればいいわけです。

(例文1)I have known her for ten years.(私は彼女を10年間知っている)

しかし、下記の例文のように動作動詞(状態動詞以外の動詞)を用いて継続用法を表すときは、have[has]+been+doing現在完了進行形を使います。

(例文2)She has been reading a book since last night.(彼女は昨夜からずっと本を読んでいる)

read動作動詞なので、継続用法では現在完了進行形にします。

確認のため継続用法で動作動詞が使われる例文をもう1つ見てみましょう。

(例文3)We have been walking for three hours.(私たちは3時間歩き続けている)

「for~」から現在完了の継続用法だとわかりますね。walk動作動詞なので現在完了進行形が使われています。

このように「継続用法 × 動作動詞 = 現在完了進行形」になります。

練習問題-厳選5題-

「現在完了」の練習問題を厳選して5題集めました。解説への理解を深めるために是非参考にしてみて下さい。なお、答えは「+解答解説」ボタンを押すと見ることができます。もちろん詳しい解説付きです。


1.Ken and Mike are good friends. They(  )each other since childhood.

①are knowing ②are known ③have been knowing ④have known

解答解説1
大学入試共通テスト(旧・センター試験)からの出題です。全訳は「ケンとマイクは親友だ。お互いを子供の頃から知っている。」です。「since childhood」から現在完了の継続用法と考えます。for~since~は現在完了の継続用法の目印となる副詞でしたね。継続用法では、動詞が状態動詞のときは、普通にhave[has]+過去分詞のかたちにし、動詞が動作動詞のときは、have[has] been doingの形にするのでした。knowは代表的な状態動詞です。そのため④have knownが正解です。

2.We are all tired of snow. It(  )for four weeks now.

①has been snowing ②is snowing ③snowed ④will be snowing

解答解説2
明治大学の過去問です。全訳は「私たちはみな雪に飽きている。今のところ4週間も雪が降り続いている。」です。「for four weeks」から現在完了の継続用法だと考えます。そして現在完了の継続用法では、動詞が状態動詞ならばhave[has]+過去分詞になり、動詞が動作動詞ならばhave[has] been doingのかたちになるのでした。snowは状態動詞ではないので、動作動詞です。そのため①has been snowingが正解です。つまり「継続用法 × 動作動詞 = 現在完了進行形」という公式が当てはまるわけですね。

3.Tom(  )home just now. Didn’t you know that?

①comes ②came ③has come ④had come

解答解説3
拓殖大学の過去問です。全訳は「トムは今しがた帰ってきたよ。わからなかったかい?」です。just now(今しがた)は過去の一時点を表すので、現在完了形と一緒に使うことはできません。そのため正解は②cameです。

4.When(  )you come to Japan?

①have ②have to ③did ④were

解答解説4
東海大学の過去問です。全訳は「あなたはいつ日本に来たのですか?」です。疑問詞のwhen~?は「いつ?」と過去の一時点を表すので現在完了形と一緒に使うことはできません。また②have toと④wereは文法的に誤っているので除外できます。従って正解は③didです。

5.I have just(  )to the airport to see my friends off.

①gone ②been ③arrived ④reached

解答解説5
立命館大学の過去問です(改題)。全訳は「空港まで友達を見送りに行ってきたところだ。」です。have gone toは「完了・結果用法」で「~へ行った[だから今は不在だ]」という意味なので文意に合いません。経験用法のhave been toにも見えますが副詞のjustは完了・結果用法の目印でした。have been toには意味が2つあり1つは経験用法で「~したことがある」、もう1つは完了・結果用法で「今ちょうど~へ行ってきたところだ」です。つまり本問のhave been toは完了・結果用法の方のhave been toです。従って②beenが正解です。

関連記事

コメント