現在完了
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, yet | I have just finished my homework. |
| 経験「〜したことがある」 | ever, never, once, twice, 〜 times, before | I have visited Kyoto twice. |
| 継続「ずっと〜している」 | for, since, How long 〜? | She has lived here for ten years. |

2完了:〜したところだ・〜してしまった
ある動作が今終わっていることを表します。just(ちょうど)、already(もう、すでに)は have / has と過去分詞の間に置きます。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 〜 は「〜へ行ってしまった(今はここにいない)」という意味になるので注意しましょう。

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 |

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.
かぎをなくしてしまいました。(今もない)

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確認問題
「私はちょうど昼食を食べたところです。」I have ( )( ) lunch.
答えを見る
just eaten
eaten のかわりに had も使えます。
「彼女は2015年からここに住んでいます。」She has lived here ( ) 2015.
答えを見る
since
始まった時を言うときは since です。
( )内の語を使って( )に適する語を入れなさい。How long ( ) you ( ) in this town? — For five years. (live)
答えを見る
have, lived
誤りを直しなさい。I have visited Nara last month.
答えを見る
I visited Nara last month.
last month は過去の時点をはっきり示す語です。
英語にしなさい。「あなたは今までに富士山に登ったことがありますか。」
答えを見る
Have you ever climbed Mt. Fuji?
否定文に書きかえなさい。He has arrived at the station.
答えを見る
He hasn't arrived at the station.
has のあとに not を置きます。文の最後に yet をつけると「まだ着いていない」の意味がはっきりします。
9ニュースで出てきた現在完了
この単元に関係する英文がニュースに出てきたら、ここに自動で追加されます。