この章では現在完了を学びます。「ずっと〜している」「もう〜した」「〜したことがある」のように、過去と今をつなげて言う形です。英検3級でとてもよく出る、大切な文法です。
この章で学ぶこと
- 現在完了の形(have / has + 過去分詞)
- 3つの意味:経験(〜したことがある)・完了(もう〜した)・継続(ずっと〜している)
- それぞれの意味でよく使う言葉(ever / never / just / already / yet / for / since)
- 現在完了の否定文・疑問文
- 過去形とのちがい
ポイント: 現在完了はhave / has + 過去分詞の1つの形で、意味が3つ(経験・完了・継続)あります。「どの意味か」は、いっしょに使われる言葉や文の流れで見分けます。
現在完了ってなに?
現在完了は、過去のことを、今と関係づけて言う形です。「過去に起きたことが、今にどうつながっているか」を表します。
- 過去形: I lost my key.(私はかぎをなくした。)← 過去の出来事だけ
- 現在完了: I have lost my key.(私はかぎをなくしてしまった。)← なくして、今も見つかっていない
作り方は、have / has + 過去分詞 です。主語が he / she / it(1つ)のときは has、それ以外は have を使います。
| 主語 | have / has | 例 |
|---|
| I / you / we / they | have | I have finished it.(私はそれを終えた。) |
| he / she / it | has | She has finished it.(彼女はそれを終えた。) |
ポイント: 過去分詞は受動態(第2章)でも使った形です。went の過去分詞は gone、seen、done、been など。不規則動詞の過去分詞をしっかり覚えておくことが、現在完了の土台になります。
意味その1:経験(〜したことがある)
「(今までに)〜したことがある」という、経験を表します。
- I have visited Kyoto twice.(私は京都を2回おとずれたことがあります。)
- She has read this book before.(彼女は以前にこの本を読んだことがあります。)
経験の意味では、次の言葉がよく使われます。
| 言葉 | 意味 | 例 |
|---|
| ever | (今までに)一度でも | Have you ever been to Okinawa?(沖縄へ行ったことがありますか。) |
| never | 一度も〜ない | I have never eaten natto.(私は納豆を一度も食べたことがありません。) |
| 〜 times | 〜回 | He has seen the movie three times.(彼はその映画を3回見たことがあります。) |
| before | 以前に | We have met before.(私たちは以前に会ったことがあります。) |
注意: 「〜へ行ったことがある」は have been to 〜 です。have gone to 〜 は「〜へ行ってしまった(今ここにいない)」という意味になります。He has been to America.(行ったことがある)と He has gone to America.(行ってしまって今いない)のちがいに注意しましょう。
意味その2:完了(もう〜した・ちょうど〜したところだ)
「(ちょうど今)〜し終えた」「もう〜した」という、完了を表します。
- I have just finished my homework.(私はちょうど宿題を終えたところです。)
- She has already cleaned her room.(彼女はもう部屋をそうじしました。)
完了の意味では、次の言葉がよく使われます。
| 言葉 | 意味 | 使う場所 |
|---|
| just | ちょうど(今) | have と過去分詞の間 |
| already | もう・すでに(肯定文) | have と過去分詞の間 |
| yet | まだ(否定文)/もう(疑問文) | 文のおわり |
- I have already had lunch.(私はもう昼食を食べました。)
- I have not finished it yet.(私はまだそれを終えていません。)← 否定文の yet =「まだ」
- Have you finished it yet?(あなたはもうそれを終えましたか。)← 疑問文の yet =「もう」
ポイント: already は肯定文で「もう」、yet は否定文で「まだ」・疑問文で「もう」。位置も意味もセットで覚えると、英作文でも使えます。
意味その3:継続(ずっと〜している)
「(過去のあるときから今まで)ずっと〜している」という、継続を表します。
- I have lived in Tokyo for ten years.(私は10年間ずっと東京に住んでいます。)
- She has been busy since this morning.(彼女は今朝からずっといそがしいです。)
継続の意味では、for と since がよく使われます。
| 言葉 | 意味 | 後ろにくるもの | 例 |
|---|
| for | 〜の間(期間の長さ) | 期間 | for three years(3年間), for a week(1週間) |
| since | 〜から(起点) | 始まった時点 | since 2020(2020年から), since last month(先月から) |
- We have known each other for five years.(私たちは5年間知り合いです。)
- He has studied English since he was ten.(彼は10歳のときからずっと英語を勉強しています。)
注意: for のあとは「期間の長さ」(for two hours)、since のあとは「始まった時点」(since Monday)です。「for 2020」「since three years」のように取りちがえないようにしましょう。
否定文と疑問文
現在完了は have / has を使う文なので、否定文・疑問文も have / has で作ります。
否定文
have / has のうしろに not を置きます。have not = haven't、has not = hasn't と短くできます。
- I have not(haven't)seen him today.(私は今日まだ彼に会っていません。)
- She has not(hasn't)finished her work yet.(彼女はまだ仕事を終えていません。)
疑問文
have / has を文の前に出します。
- Have you ever been to Hokkaido? — Yes, I have. / No, I haven't.(北海道へ行ったことがありますか。)
- Has he arrived yet? — Yes, he has. / No, he hasn't.(彼はもう着きましたか。)
ポイント: 答えるときも have / has を使います。「Have you 〜?」には「Yes, I have. / No, I haven't.」、「Has he 〜?」には「Yes, he has. / No, he hasn't.」のように答えます。
過去形とのちがい
現在完了は、過去を表すはっきりした言葉(yesterday, last year, 〜 ago, when 〜? など)といっしょには使えません。これらの言葉があるときは、過去形を使います。
- ○ I visited Kyoto last year.(私は去年京都をおとずれました。)← 過去の一点 → 過去形
- ✕ I have visited Kyoto last year.
- ○ I have visited Kyoto.(私は京都をおとずれたことがあります。)← 経験 → 現在完了
注意: 「yesterday」「last 〜」「〜 ago」「When did you 〜?」が文にあるときは、現在完了ではなく過去形です。これは英検3級でとてもよく問われる区別です。
どう問われる?
英検3級で現在完了は、次のような形でよく問われます。
- 大問1(語句空所補充): 「I have ( ) my homework.」の空所に finished を、また for / since の使い分けや、just / already / yet の位置が問われます。
- 過去形との区別: 「( ) you ever been to Osaka?」の Have を選ばせる問題や、「last week」があるから過去形を選ぶ問題。
- 長文読解・会話: 「I have lived here since 2015.」のように、自己しょうかいや経験を語る場面で出てきます。
注意: ねらわれやすいのは、①have been to(行ったことがある)と have gone to(行ってしまった)の区別、②for と since の使い分け、③過去を表す言葉があるときは過去形、の3点です。
まとめ
- 現在完了は have / has + 過去分詞。主語が he / she / it のときは has。
- 意味は3つ:経験(ever / never / 〜 times / before)、完了(just / already / yet)、継続(for / since)。
- have been to(行ったことがある)と have gone to(行ってしまった)を区別する。
- for(期間の長さ)と since(始まった時点)を使い分ける。
- 否定文は have / has + not、疑問文は have / has を前に。
- yesterday・last 〜・〜 ago など過去を表す言葉があるときは、現在完了ではなく過去形。
ポイント: 現在完了は1つの形(have + 過去分詞)で3つの意味を表します。いっしょに使われる言葉(ever, just, already, yet, for, since)が、意味を見分ける手がかりです。例文ごと覚えましょう。