中3 ・ 単元 1 ・ ベーシック(CEFR A1〜A2)

現在完了

have / has + 過去分詞 = 完了「〜したところだ」・経験「〜したことがある」・継続「ずっと〜している」

1現在完了とは

〈have / has + 過去分詞〉の形を現在完了といい、過去のことが今とつながっていることを表します。主語が3人称単数なら has を使います。否定文は have / has のあとに not を置き、疑問文は Have / Has を主語の前に出します。

主語形短縮形
I, you, we, they(3人称単数以外)have + 過去分詞I've, you've, we've, they've
he, she, it(3人称単数)has + 過去分詞he's, she's, it's
否定文have not / has not + 過去分詞haven't, hasn't

現在完了には、大きく分けて3つの意味があります。いっしょによく使う語が意味を見分けるヒントになります。

意味いっしょによく使う語例
完了「〜したところだ・〜してしまった」just, already, yetI have just finished my homework.
経験「〜したことがある」ever, never, once, twice, 〜 times, beforeI have visited Kyoto twice.
継続「ずっと〜している」for, since, How long 〜?She has lived here for ten years.
現在完了の3つの意味の図解。3本の時間の線を縦の今の線がつらぬく。完了は動作の矢印が今で終わる。経験は過去の2つの点から今まで点線がつながり、今までに2回したことを表す。継続は過去の始まりから今までの帯で、ずっと続いていることを表す
図1 現在完了の3つの意味(完了・経験・継続)

2完了:〜したところだ・〜してしまった

ある動作が今終わっていることを表します。just(ちょうど)、already(もう、すでに)は have / has と過去分詞の間に置きます。yet は文の最後に置き、疑問文では「もう」、否定文では「まだ」の意味になります。

just・already と yet の位置の図解。上の段は I have と finished my homework. の間に点線のすき間があり、just / already の札が上から入る。下の2段は yet の札が文の最後にあり、疑問文の Have you finished lunch yet? では「もう」、否定文の He hasn't arrived yet. では「まだ」の意味になることを表す
図2 just・already は間に、yet は文の最後に

I have just finished my homework.

私はちょうど宿題を終えたところです。

The train has already left.

電車はもう出てしまいました。

Have you finished lunch yet?

もう昼食を食べ終えましたか。

Yes, I have.

はい、食べ終えました。

No, I haven't.

いいえ、まだです。

He hasn't arrived yet.

彼はまだ着いていません。

3経験:〜したことがある

今までにしたことがあるかどうかを表します。ever(今までに)は疑問文で、never(一度も〜ない)は否定の意味で使います。回数は once(1回)、twice(2回)、three times(3回)のように言います。

I have visited Kyoto twice.

私は京都を2回訪れたことがあります。

She has read this book three times.

彼女はこの本を3回読んだことがあります。

Have you ever been to Okinawa?

あなたは今までに沖縄に行ったことがありますか。

I have never seen a koala.

私は一度もコアラを見たことがありません。

「〜へ行ったことがある」は have been to 〜 で表します。have gone to 〜 は「〜へ行ってしまった(今はここにいない)」という意味になるので注意しましょう。

have been to と have gone to のくらべの図解。左は人が行き先まで行って帰ってくる往復の矢印で、have been to は行ったことがある(今はここにいる)。右は元の場所にうすい点線の人影だけが残り、人は矢印の先の行き先にいて、have gone to は行ってしまった(今はここにいない)ことを表す
図3 been to は行って帰ってきた、gone to は行ってしまった

4継続:ずっと〜している

過去に始まった状態が今も続いていることを表します。live(住んでいる)、know(知っている)、be(いる)のような状態を表す動詞でよく使います。期間を言うときは for、始まった時を言うときは since を使います。

語あとに続くもの例
for期間(どのくらいの間)for ten years, for two weeks, for a long time
since始まった時(いつから)since 2020, since last year, since I was a child
継続の for と since のくらべの図解。時間の線の上に、始まりの点から今まで続く帯がある。since は上から始まりの点を指していて始まった時を表し、for は下の大かっこで帯の長さ全体を指していて期間を表す
図4 since は始まった時、for は期間

She has lived here for ten years.

彼女はここに10年間住んでいます。

I have known him since 2020.

私は2020年から彼を知っています。

How long have you been in Japan?

あなたはどのくらい日本にいますか。

I have been here for two weeks.

私はここに来て2週間になります。

We haven't met for a long time.

私たちは長い間会っていません。

5過去形とのちがい

過去形は過去のことだけを言い、今のことは表しません。現在完了は過去のことが今どうなっているかまで表します。

過去形

I lost my key yesterday.

昨日かぎをなくしました。(今見つかったかどうかはわからない)

現在完了

I have lost my key.

かぎをなくしてしまいました。(今もない)

過去形と現在完了のくらべの図解。上の過去形 I lost my key yesterday. は、時間の線の上のきのうの点だけを表し、今かぎがあるかどうかはわからない。下の現在完了 I have lost my key. は、なくした点から今まで緑の矢印がのび、今の位置にかぎと赤い×があり、今もないことを表す
図5 過去形は過去だけ、現在完了は今までつながる

yesterday、last year、〜 ago、When 〜? のように、過去の時点をはっきり示す語は現在完了といっしょに使えません。そのときは過去形を使います。

6ニュースの英文で

ニュースでは、今までに起きたことの結果が今につながっていることを伝えるときに現在完了がよく使われます。くわしい日時を言うときは、過去形にかわります。

The government has decided to build a new airport.

政府は新しい空港を建設することを決めました。

Prices have gone up this year.

今年は物価が上がっています。

More than 10,000 people have visited the new museum since it opened.

開館以来、1万人をこえる人が新しい博物館を訪れています。

The company has announced a new plan.

その会社は新しい計画を発表しました。

7よくある間違い

×○ポイント
I have visited Kyoto last year.I visited Kyoto last year.last year などがあるときは過去形
She have lived here for ten years.She has lived here for ten years.3人称単数は has
He has went to the store.He has gone to the store.has のあとは過去分詞
I have lived here since three years.I have lived here for three years.期間は for
When have you finished it?When did you finish it?When の疑問文は過去形
I haven't finished it already.I haven't finished it yet.否定文の「まだ」は yet

8確認問題

  1. 「私はちょうど昼食を食べたところです。」I have ( )( ) lunch.

    答えを見る

    just eaten

    eaten のかわりに had も使えます。

  2. 「彼女は2015年からここに住んでいます。」She has lived here ( ) 2015.

    答えを見る

    since

    始まった時を言うときは since です。

  3. ( )内の語を使って( )に適する語を入れなさい。How long ( ) you ( ) in this town? — For five years. (live)

    答えを見る

    have, lived

  4. 誤りを直しなさい。I have visited Nara last month.

    答えを見る

    I visited Nara last month.

    last month は過去の時点をはっきり示す語です。

  5. 英語にしなさい。「あなたは今までに富士山に登ったことがありますか。」

    答えを見る

    Have you ever climbed Mt. Fuji?

  6. 否定文に書きかえなさい。He has arrived at the station.

    答えを見る

    He hasn't arrived at the station.

    has のあとに not を置きます。文の最後に yet をつけると「まだ着いていない」の意味がはっきりします。

9ニュースで出てきた現在完了

この単元に関係する英文がニュースに出てきたら、ここに自動で追加されます。