現在完了の形と意味
現在完了形は<have(has)+過去分詞>で表します。意味は「(ずっと)~している[継続]」「~したことがある[経験]」「~したところだ・~してしまった[完了・結果]」の3つがあります。
~現在完了<have(has)+過去分詞>の意味~
①[継続]「ずっと~している」
②[経験]「~したことがある」
③[結果・完了]「~してしまった/~したところだ」
上記のように、3種類の日本語に分かれますが、どれにも共通する現在完了の根っこの意味は<過去に起こったことが現在につながっている>です。例えば下の2文を比べてみましょう。
【過去形】 I lost the key. | 「私は鍵を失くした」 |
【現在完了形】 I have lost the key. | 「私は鍵を失くしてしまった」 |
【過去形】は<過去の出来事>を表すので、I lost the key.という文からは「失くした鍵が今見つかっているか」を判断することはできません。それに対して【現在完了形】は<過去に起こったことが現在につながっている>というニュアンスなので、I have lost the key.という文から「失くした鍵は、今も失くしたままで、まだ見つかっていない」ということまで読み取ることができます。
「鍵を失くした」と「鍵を失くしてしまった」という日本語を見ても、「今も失くしたままか」は判断できません。日本語の訳で区別することはかなり難しい(あるいは不可能である)ので、まずは【現在完了形】は<過去に起こったことが現在につながっている>というニュアンスであることを理解して、日本語ではなく英語のルールで考えるようにしてください。
そして、主語が3人称単数であれば<has+過去分詞>という形になります。
He has lost the key. | 「彼は鍵を失くしてしまった」 |
短縮形
〇 I have → I’ve
〇 you have → you’ve
〇 he has → he’s
〇 she has → she’s
〇 we have → we’ve
〇 they have → they’ve
〇 it has → it’s
現在完了形が表す意味
~現在完了<have(has)+過去分詞>の意味~
①[継続]「ずっと~している」
②[経験]「~したことがある」
③[結果・完了]「~してしまった/~したところだ」
どの場合も<過去に起こったことが現在につながっている>というニュアンスは変わりません。
継続「ずっと~している」
[例①] I have lived in Tokyo for three years. | 「私は3年間、東京に住んでいる」 |
[例②] It has rained since yesterday. | 「昨日からずっと雨が降っている」 |
例①は「3年前に東京に住み始めて、現在までずっと東京に住んでいる」という意味であり、例②は「昨日降り始めた雨が、現在も降り続いている」という意味です。どちらも<過去に起こったことが現在につながって>います。
<have+過去分詞>が以下の語句と一緒に使われている場合は、「ずっと~している」と訳すとうまくいきやすいです。
・ for+期間を表す語句…「~の間」
for three years「3年間」/for many years「何年もの間」/for a long time「長い間」
・ since+過去のある時点…「~以来」
since yesterday「昨日から」/since then「その時以来」/since yesterday「昨日から」
since I was a child「私が子供だったとき以来」
・ how long「どれくらいの間」
・ その他よく出てくるもの
all day「一日中」/all the year「一年中」/today「今日」/this week「今週」
I have studied English all day. | 「私は一日中英語を勉強している」 |
How long have you lived in Japan? ※疑問詞の後は疑問文の形になる | 「あなたはどれくらい日本に住んでいますか?」 |
経験「~したことがある」
[例①] I have visited Kyoto twice. | 「私は京都を2回訪れたことがある」 |
[例②] I have read the story before. | 「私は以前その本を読んだことがある」 |
例①は「過去に京都を訪れたことがあり、それが現在、経験値や知識、思い出として残っている」という意味で、例②は「過去に話を読んだことがあり、それが現在、知識や思い出として残っている」という意味で、<過去に起こったことが現在につながって>います。
<have+過去分詞>が以下の語句と一緒に使われている場合は、「~したことがある」と訳すとうまくいきやすいです。
・文末に置かれるもの
before「以前」/once「かつて/一度」/twice「2回」/~times「~回」
many times「何回も」
・ haveと過去分詞の間に挟むもの
sometimes「時々」/often「よく」/ever「今までに」(疑問文で使う)/never「一度も~ない」
・ 疑問詞
how often = how many times「何回」
I have visited the country once. | 「私は一度その国を訪れたことがある」 |
She has watched this movie three times. | 「彼女はこの映画を3回見たことがある」 |
Have you ever played tennis? | 「あなたは今までにテニスをしたことがありますか?」 |
I have never seen him. ※経験を表す現在完了ではnotの代わりにneverを使うことが多い | 「私は彼に会ったことがない」 |
How often have you come here? ※疑問詞の後は疑問文の形になる | 「あなたはここに何度来たことがありますか?」 |
結果・完了「~してしまった/~したところだ」
[例①] I have lost the key. | 「私は鍵を失くしてしまった」 |
[例②] I have finished the work. | 「私は仕事を終えたところだ」 |
例①は「過去に失くした鍵が、現在も失くしたままだ」という意味で、例②は「過去に始めた仕事が、現在は終わっている」という意味です。どちらも<過去に起こったことが現在につながって>います。
<have+過去分詞>が以下の語句と一緒に使われている場合、「~してしまった/~したところだ」と訳すとうまくいきやすいです。
・ already「(肯定文で)もう、すでに」
・ just「ちょうど」
・ now「今」
・ yet「(否定文で)まだ/(疑問文で)もう」
・ just「ちょうど」
I have already finished the work. | 「私はすでに仕事を終えてしまっている」 |
I have not finished the work yet. | 「私はまだ仕事を終えていない」 |
Have you finished the work yet? | 「あなたはもう仕事を終えましたか?」 |
She has just come here. | 「彼女はちょうどここに来た」 |
現在完了の文の作り方
肯定文
<【主語】+have+過去分詞~>という形が現在完了形の文です。
I have already finished the work. | 「私はすでに宿題を終えてしまった」 |
I have visited Tokyo twice. | 「私は東京を2度、訪れたことがある」 |
否定文
<【主語】+have+not+過去分詞~.>とすると否定文になります。<have+not>の短縮形は<haven’t>、<has not>の短縮形は<hasn’t>です。<経験用法「~したことがある」>の場合は<not>の代わりに<never>が使われることがほとんどです。
I have not finished the work yet. | 「私はまだ仕事を終えていない」 |
I have never visited Tokyo. | 「私は一度も京都を訪れたことがない」 |
It hasn’t rained for a week. | 「一週間、雨が降っていない」 |
疑問文
<Have+【主語】+過去分詞~?>とすると疑問文になります。答え方は<Yes,【主語】+have(has).><No,【主語】+haven’t(hasn’t).>です。
Have you lived in Japan for a year? ーYes, I have. ーNo, I haven’t. | 「あなたは1年間、日本に住んでいますか?」 ー「はい、そうです」 ー「いいえ、ちがいます」 |
Has she ever visited Kyoto? ーYes, she has. ーNo, she hasn’t. | 「彼女は今までに京都を訪れたことがありますか?」 ー「はい、あります」 ー「いいえ、ありません」 |
疑問詞を使った疑問文
【疑問詞が主語にならないパターン → <疑問詞+have+【主語】+過去分詞~?>】
What have you done? | 「あなたは何をしてしまったのですか?」 |
How long has she lived in Japan? | 「どのくらいの間、彼女は日本に住んでいるのですか?」 |
【疑問詞が主語になるパターン → <疑問詞+have+過去分詞~?>】
答え方は<【主語】+have(has).>となります。
Who has come yet? ーTom has. | 「誰がもう来ていますか?」 ー「トムです」 |
What has been done? | 「何がなされたのですか?」 |
現在完了は過去を表す語(句)といっしょに使うことができない
現在完了は<過去に起こったことが現在につながっている>ということを表し、<過去>とは異なるので、以下のような<過去を表す語(句)>といっしょに使うことができません。
〇 過去を表す語(句)= 現在完了といっしょに使うことができない!
・yesterday「昨日」
・~ago「~前」
・just now「たった今(=少し前の過去)」
・last~「この前の~/先~」
・in+年号
・When~?「いつ?」
・when~「~する時」
※since yeserdayやsince last weekなど、sinceといっしょに用いる場合は可。ただし<since~ago>というセットはない。
※justやnowは現在完了といっしょに使うことができるが、just nowとなると現在完了といっしょには使えない。ここは覚える必要がある。
※例えば<I have come here yesterday.>「私は昨日ここに来た」のように、文法的にはダメでも、日本語にすると通じるものも多いので、意味で判断しようとせず、ルールとして覚えてしまう。
【ダメな例】
× I have come here yesterday. |
× She has arrived just now. |
× When have you come here? |
× The train has left when we arrived. |
暗記事項
have beenとhave gone
〇have been to~「~に行ったことがある(経験)/~へ行ってきたところだ(完了)」
I have been to Kyoto. | 「私は京都に行ったことがある」 |
He has been to the library. | 「彼は図書館に行ってきたところだ」 |
〇have gone to~「~に行ってしまった(もうここにはいない)」
She has gone to New York. |
「彼女はニューヨークに行ってしまった(もうここにはいない)」 |
〇have been in~「~にずっといる(継続)/~にいたことがある(経験)」
I have been in Tokyo. |
「私は東京にずっといる/私は東京にいたことがある」 |
「死んでしまった」
〇動詞の過去形を使う
She died three years ago. |
「彼女は3年前に死んだ」 |
〇【主語】have been dead for【期間】
She has been dead for three years. |
「(直訳)彼女は3年間ずっと死んでいる/(意訳)彼女は3年前に死んだ」 |
〇【期間】have passed since~.「~以来<期間>が経過した」
Three years have passed since she died. |
「彼女が死んでから3年が経過した」 |
〇It is【期間】since~. = It has been【期間】since~.「~以来<期間>だ」
「彼女が死んでから3年だ」 |
It is three years since she died. |
It has been three years since she died. |