現在完了は「〜したことがある」という経験だけでなく、動作がちょうど終わったことや、その結果が今に残っていることも表します。She has just cleaned her room. は掃除を終えたばかり、I have lost my key. は鍵をなくした結果、今も手元にないという意味です。形は have / has + 過去分詞 で、just、already、yet の位置と、終了した過去時点を述べる単純過去との違いが重要です。
基本ルール
完了を表す現在完了は、過去に始まった動作が現在までに終わったことに注目します。I have finished my homework. は「宿題を終えました」で、今は宿題が終わった状態です。主語が he、she、単数名詞なら has、それ以外では have を使います。
結果を表す現在完了は、過去の出来事による現在の状態を伝えます。I have lost my key. は、なくした出来事だけでなく、今も鍵がなくて困っていることを含みます。単純過去の I lost my key yesterday. は、昨日の出来事を時点とともに述べる形です。
現在完了では過去分詞を使います。finish—finished、clean—cleaned のような規則動詞も、lose—lost、break—broken、do—done のような不規則動詞もあります。have broke ではなく have broken とします。
作り方・使い方
just は「ちょうど〜したところ」で、通常は have / has と過去分詞の間に置きます。She has just cleaned her room. は「彼女はちょうど部屋を掃除し終えたところです」です。形は has + just + cleaned です。
already は「すでに・もう」で、肯定文では通常、過去分詞の前に置きます。We have already eaten lunch. は「私たちはもう昼食を食べました」です。予想より早い完了を伝えることもあります。have already eaten の語順を基本として覚えます。
yet は「もう」「まだ」の意味で、疑問文や否定文の文末によく置きます。Have you finished yet? は「もう終わりましたか」、I have not finished yet. は「まだ終わっていません」です。肯定文の基本では already、疑問・否定の文末では yet と整理すると使いやすくなります。
今とのつながりを伝えるなら現在完了、終了した時点そのものを伝えるなら単純過去です。She has finished the report. は今、報告書が完成しています。She finished the report yesterday. は昨日という終了済みの時点を述べます。yesterday、last night、two hours ago とは単純過去を使うのが基本です。
例文
She has just cleaned her room. は「彼女はちょうど部屋を掃除し終えたところです」です。掃除の完了が現在に近く、部屋は今きれいになっていると考えられます。
I have lost my key, so I cannot open the door. は「鍵をなくしたので、ドアを開けられません」です。鍵をなくした結果が cannot open という今の問題につながっています。
Tom has already left school. は「トムはもう学校を出ました」です。already は過去分詞 left の前です。今、トムは学校にいないという結果も読み取れます。
Have you done your homework yet? は「もう宿題をしましたか」です。do の過去分詞は done で、疑問文の yet は文末にあります。否定なら I haven't done it yet. とします。
よくある間違い
誤りの She has finished the report yesterday. は、現在完了と終了した過去時点 yesterday を一緒に使っています。正しくは She finished the report yesterday. です。昨日の出来事として述べるため単純過去を選びます。
I have just ate lunch. は過去分詞の形が誤っています。正しくは I have just eaten lunch. です。eat の過去形は ate、過去分詞は eaten です。
Have you yet finished your homework? という位置も可能な文脈はありますが、初心者の基本形では Have you finished your homework yet? と文末に置きます。否定でも I haven't finished yet. の語順を使います。
確認問題
- 「私はちょうど夕食を作り終えました」を、
justと現在完了を使って英語にしてください。 He has already went home.を、正しい過去分詞へ直してください。- 「彼女は昨夜その本を読み終えました」を、現在完了にせず適切な時制で英語にしてください。
解答
I have just cooked dinner.または「作り終えた」を明確にするI have just finished cooking dinner.です。justを過去分詞の前に置きます。He has already gone home.です。goの過去分詞はgoneで、alreadyはその前に置きます。She finished reading the book last night.です。last nightは終了した過去時点なので、単純過去finishedを使います。
まとめ
完了・結果の現在完了は have / has + 過去分詞 で、動作が終わったことや、その結果が今に残ることを表します。just と already は主に過去分詞の前、yet は主に疑問文・否定文の文末です。現在の完成状態や影響を伝えるなら現在完了、yesterday や last night のような終了した時点を伝えるなら単純過去を使い分けましょう。判断に迷ったら、後ろへ「だから今〜だ」を続けられるか考えます。I have broken my glasses, so I cannot see well. は、壊した結果が今の見え方に残っています。一方、I broke my glasses last month, but they are fine now. は先月の出来事を述べ、その結果はすでに解消しています。疑問文と否定文も Have you finished yet?、I haven't finished yet. と組で練習し、have / has、過去分詞、語句の位置を一つずつ確認しましょう。現在完了は「最近」という意味だけで決めず、今の完成状態や結果を伝える形だと捉えることが大切です。書き終えたら「動作は完了したか」「その結果は今に関係するか」「終了した過去時点を直接示していないか」の三点を確認すると、単純過去との混同を減らせます。
