現在完了形は、過去の出来事を「今」とつなげて話すときの形で、 have と過去分詞で作ります。日本語の「もう食べた」「行ったことがある」「三年住んでいる」は、どれも英語では I've already eaten 、 I've been to Kyoto 、 I've lived here for three years のように現在完了形になります。
日本語には現在完了形という文法の形はありません。そのかわり、「た」「たことがある」「ている」という別々の言い方で、同じ内容を表しています。日本人が現在完了形を難しく感じるのは、日本語では形がばらばらなのに、英語ではそれが一つにまとまっているからです。
| 日本語 | 英語 | 働き |
|---|---|---|
| もう昼ごはんを食べました | I've already had lunch. | 完了:今はもう済んでいる |
| まだ返事が来ていません | I haven't heard back yet. | 未完了:今もまだ |
| 京都に行ったことがあります | I've been to Kyoto. | 経験:今までに |
| 三年前から東京に住んでいます | I've lived in Tokyo for three years. | 継続:過去から今まで |
| 鍵をなくしてしまいました | I've lost my key. | 結果:今も鍵がない |
どの文にも共通するのは、話している「今」の状態に関心があることです。 I've lost my key は、鍵をなくしたせいで今困っている、という意味を含みます。過去形の I lost my key は、なくしたという過去の事実だけを述べていて、今見つかっているかどうかは分かりません。
日本人の英語でもっとも多い現在完了形の間違いは、 yesterday や last year のような、過去の特定の時点を表す言葉と一緒に使ってしまうことです。日本語の「去年京都に行ったことがある」は自然ですが、英語では時点を言ったら過去形にします。
| 間違い | 正しい形 |
|---|---|
| I have visited Kyoto last year. | I visited Kyoto last year. |
| I have finished the report yesterday. | I finished the report yesterday. |
| When have you arrived? | When did you arrive? |
| I have met him two years ago. | I met him two years ago. |
yesterday 、 last week 、 in 2019 、 ago 、 when I was a child のような言葉が出てきたら、過去形を使います。 when で「いつ」と聞く疑問文も、ふつうは過去形です。反対に、 ever 、 never 、 already 、 yet 、 just 、 so far 、 since 、 for のような言葉は、現在完了形と一緒に使われることが多い言葉です。
実際の会話では、現在完了形と過去形が自然に入れ替わります。経験の有無を現在完了形で聞き、その経験について詳しく話すときは過去形に切り替えます。
last summer と時期を言ったところで、話は過去形に移っています。日本語では「行ったことがあります。去年の夏に行きました」と、同じ「た」で話を続けられるので、この切り替えを意識しにくいのです。
「行ったことがある」を英語にするとき、 gone ではなく been を使うのが基本です。
| 英語 | 意味 |
|---|---|
| She has been to Osaka. | 大阪に行ったことがある(今は戻っている) |
| She has gone to Osaka. | 大阪に行ってしまった(今はここにいない) |
オフィスで同僚の居場所を聞かれて「大阪に行っています」と答えるなら、 She's gone to Osaka が合っています。自分の経験を話すなら、 I've been to Osaka twice のように been を使います。
日本語の「ている」に期間が付くと、英語では現在進行形ではなく現在完了形になります。ここも日本人がよく間違えるところです。
| 日本語 | 間違い | 正しい形 |
|---|---|---|
| 東京に三年住んでいます | I'm living in Tokyo for three years. | I've lived in Tokyo for three years. |
| 知り合って五年になります | We know each other for five years. | We've known each other for five years. |
| 二十分待っています | I'm waiting for twenty minutes. | I've been waiting for twenty minutes. |
know のように状態を表す動詞は進行形にしないので、 have known になります。 wait のように動作が続いている場合は、 have been waiting という現在完了進行形を使うのが自然です。
日本語の「から」は、英語では since と from に分かれます。過去のある時点から今まで続いていることを言うときは、 since と現在完了形を使います。
I've worked here from April のように言うのは不自然です。 from は The new rule applies from April 1 のように、これから始まることや、 from nine to five のように始まりと終わりをセットで言うときに使います。期間の長さを言うなら for 、始まりの時点を言うなら since と覚えてください。
アメリカ英語の会話では、 just 、 already 、 yet と一緒に、現在完了形の代わりに過去形を使うことがよくあります。 Did you eat yet? や I just got here は、アメリカでは普通に聞く言い方です。イギリス英語では Have you eaten yet? や I've just arrived のように、現在完了形を使う傾向が強くなります。どちらも間違いではありませんが、試験や仕事のメールでは、現在完了形を使っておけば安心です。
現在完了形は、理屈を覚えるだけでなく、自分のことを話す文で使ってこそ身につきます。 PollyStop の音声チューターとの会話で、「どこに行ったことがあるか」「今の仕事をどのくらい続けているか」を英語で話してみてください。
今とのつながりに関心があるなら現在完了形、過去の出来事そのものを話すなら過去形です。 yesterday や last year のように過去の時点をはっきり言うときは、必ず過去形を使います。
今までの経験を言うときは現在完了形です。 I've been to London のように言います。ただし、いつ行ったかを言う場合は I went to London in 2019 のように過去形になります。
for や since で期間を言うときは、現在進行形ではなく現在完了形を使います。 I've lived here for three years 、動作が続いているなら I've been waiting for twenty minutes のようになります。
アメリカ英語の会話ではよく使われる言い方で、間違いではありません。ただしイギリス英語や改まった文章では Have you eaten yet? のように現在完了形を使うのが一般的です。