"I lost my key." と "I have lost my key." ── どちらも「鍵をなくした」話なのに、何が違うのでしょうか。
過去形は「あのとき鍵をなくした」と過去の出来事を述べるだけ。
現在完了形は「鍵をなくして、今も手元にない」と、過去の出来事が現在に及ぼす影響まで伝えます。
この「過去と現在の架け橋」の感覚を掴めば、現在完了形は丸暗記ではなく「自然にわかる」形になります。
日本語には現在完了形にぴったり対応する表現がありません。 「食べた」「行った」「知っている」── 日本語では過去形で済んでしまう場面でも、英語はわざわざ形を変えて「今とのつながり」を示します。
たとえば "It has stopped raining." は、単に「雨がやんだ」という過去の出来事を報告しているのではありません。 窓の外を見ながら「あ、雨やんだよ(今、晴れてるよ)」と、今の状況を伝えている文です。
つまり現在完了形とは、過去に起きた出来事を「現在」の視点から述べる形です。 常に意識の中心は「今」にあり、そこに過去のできごとを引き寄せてくるのです。
過去形:過去のできごとを「あの時」の話として述べる。現在とは切り離されている。
現在完了形:過去のできごとを「今」に引き寄せて述べる。現在に影響・つながりがある。
現在完了形の本質は、過去の出来事が今に影響を及ぼしていること。過去に起きたことと、今の状態が一本の線でつながっている ── それが現在完了形の正体です。
現在完了形の形は have + 過去分詞 です。 この have は助動詞として使われていますが、もともとの「持っている」というイメージが根底にあります。
ネイティブスピーカーが "I have lost my key." と言うとき、頭の中ではどんなイメージが動いているのでしょうか。
have の根っこのイメージは「持っている」。過去分詞は「完了した動作・状態」を表します。
この2つを合わせると、「完了した動作・状態を、今この手に持っている」── それが現在完了形の感覚です。
"I have lost my key." → 「鍵をなくした」という状態を今持っている → だから今、鍵がない。
過去形が「過去に置いてくる」感覚なら、現在完了形は「今まで引きずってくる」感覚。この違いが、すべての用法に通じます。
現在完了形には4つの用法がありますが、根っこの感覚はすべて同じ ──「過去のことを今に引き寄せる」です。 引き寄せた結果として、完了・結果・経験・継続という4つの意味が生まれます。
have / has + 過去分詞
主語が三人称単数(he / she / it)のとき → has を使う。それ以外は have。
間近に起きたできごとを「今、そうなった」と伝える用法です。 窓を開けて「雨やんだよ!」、宿題を終えて「できた!」── 意識は常に「今」にあります。
過去の行為を述べることで、「だから今はこういう状態だ」という現在の状況を暗示する用法です。 単に過去のことを報告しているのではなく、「今」への含みがポイントです。
過去のできごとを「今の自分がもっている経験」として語る用法です。 過去形が「あのとき、した」と過ぎ去ったことを述べるのに対し、現在完了形は「その経験が今の自分の一部」として引き寄せています。
過去のある時点から現在に至るまで、同じ状態がずっと続いていることを表す用法です。 過去から「今」に向かって時の流れが引き寄せられてくるイメージです。
完了:just(ちょうど)、already(すでに)、yet(もう/まだ)
経験:ever(今までに)、never(一度も〜ない)、before(以前に)、~ times(〜回)
継続:for +期間(〜の間)、since +起点(〜から/〜以来)、How long ...?(どのくらい〜?)
ただし、これらは「目印」に過ぎません。副詞がなくても現在完了形は使われます。大切なのは「今に引き寄せる」感覚です。
| 用法 | 意味 | 例 |
|---|---|---|
| 完了 | ちょうど〜した | I've just finished it. |
| 結果 | 〜した(だから今こうだ) | She has gone out.(今いない) |
| 経験 | 〜したことがある | I've been to Italy twice. |
| 継続 | ずっと〜している | I've lived here for ten years. |
「〜に行ったことがある」「〜に行ってきた」を英語にするとき、been と gone のどちらを使うかで意味がまったく変わります。 入試でも頻出のポイントです。
have been to A:「Aに行ったことがある(経験)」/「Aに行って帰ってきたところだ(完了)」
→ 話し手は今ここにいる。行って、戻ってきている。
have gone to A:「Aに行ってしまった(結果)」
→ 話し手(または話題の人物)は今ここにいない。行ったきりで、まだ戻っていない。
been は be(いる)の過去分詞。「ある場所にいた」→「行ったことがある」。行って、いて、帰ってきた ── 往復のイメージです。
gone は go(行く=立ち去る)の過去分詞。「立ち去った状態を今持っている」→「行ってしまって、今いない」。一方通行のイメージです。
現在完了形は「今に引き寄せる」形です。 ところが、明確に過去の一時点を指す語句と一緒に使うと、「今の話なの? 過去の話なの?」と意味が矛盾してしまいます。 そのため、以下のような語句とは同じ文中で使えません。
✕ yesterday(昨日)
✕ last night / last week / last year(昨夜/先週/去年)
✕ ... ago(〜前)
✕ then(その時)
✕ when ...?(いつ〜?)── 疑問詞の when
✕ when I was a child(子どもの頃)
✕ just now(たった今/ついさっき)── 過去時制で用いる
✕ 誤:I have eaten wild deer last year.
○ 正:I ate wild deer last year.(去年、野生の鹿を食べた)
○ 正:I have eaten wild deer.(野生の鹿を食べたことがある ── last year なし)
これは単なるルールではなく、感覚的に矛盾するからです。
現在完了形は「過去を今に引き寄せる」形。意識の中心は常に「今」にあります。
ところが yesterday や last year は「あの時」と過去の一点を確定させる語句。意識を過去に固定します。
「今に引き寄せる」のに「過去に確定させる」── この2つは同時に成り立ちません。だから不自然なのです。
ただし、since yesterday(昨日から今まで)のように、過去から現在へ向かう表現なら OK です。
just(ちょうど)→ 現在完了と一緒に使える。 I've just arrived.
just now(たった今/ついさっき)→ 現在完了とは併用不可。過去時制で使う。 She left just now.
just 単体は「ピッタリ」の感覚で現在との親和性が高いのに対し、just now は「ついさっきの過去の一点」を指すため、過去形とセットになります。
現在完了形の基本を学んだら、次のトピックへ進みましょう。
Q1. 現在完了形の本質を一言で表すと何ですか。
Q2. "I have lost my key." と "I lost my key." の違いを説明してください。
Q3. have been to A と have gone to A の違いは何ですか。
Q4. 次の文が不自然な理由を説明してください。
I have visited Osaka last year.
この記事で学んだ内容を、入試形式の問題で確認しましょう。
There is a new road to the freeway. They ( ) it yesterday.
③ opened
判断のポイント:文末に yesterday という明確な過去を示す語句があります。
現在完了形は yesterday, ago, last year などの「過去の一時点を確定させる語句」とは併用できません。したがって ② have opened は不可。過去時制の ③ opened が正解です。
「高速道路への新しい道路がある。昨日、開通した」
Mary is absent today. She ( ) to Hokkaido.
③ has gone
判断のポイント:"Mary is absent today."(メアリーは今日休んでいる)から、メアリーは今ここにいないことがわかります。
has gone to A は「Aに行ってしまった(今いない)」。has been to A は「Aに行ったことがある/行って帰ってきた」で、話題の人物が今ここにいる場合に使います。
メアリーは今いないので、③ has gone が正解です。
「今日、メアリーは休んでいる。彼女は北海道に行ってしまったのだ」
次の文の下線部に誤りがある場合、正しく直しなさい。誤りがなければ「正しい」と答えなさい。
I haven't seen Tom for a long time. When have you seen him last?
have you seen → did you see
判断のポイント:前半の "I haven't seen Tom for a long time." は「長い間トムに会っていない」で、for a long time(継続の期間)を伴う現在完了として正しい文です。
後半の "When have you seen him last?" が誤り。疑問詞 when は「いつ?」と過去の一時点を尋ねる語句であり、現在完了形とは併用できません。
"When did you see him last?"(最後に彼に会ったのはいつですか)と過去形に直す必要があります。
「私はトムに長い間会っていません。あなたが最後に彼に会ったのはいつですか」