「現在完了形(have/has + 過去分詞)」と「過去形」は、どちらも"過去のこと"を表すので混乱しがちです。でも、たった一つの考え方を押さえれば、迷いはほとんど消えます。この記事では、結論 → 例文比較 → 見分け方 → よくある間違い、の順でスッキリ整理します。
まず結論:たった一言の違い
過去形は「過去の一点」を表し、今とは切り離されています。一方、現在完了形は「過去の出来事が"今"につながっている」ことを表します。過去形は過去を指さすだけ、現在完了形は過去から今へ線を引くイメージです。
過去形の使い方
過去形は、すでに終わった、過去の出来事を表します。「いつ」起きたかがはっきりしている文と相性が良いのが特徴です。yesterday(昨日)、last week(先週)、〜 ago(〜前)、in 2020(2020年に)などの言葉とよく一緒に使われます。
現在完了形の使い方
現在完了形は have / has + 過去分詞 の形で、過去の出来事を「今」と結びつけます。主に次の3つの意味で使われます。
① 経験「〜したことがある」
② 継続「ずっと〜している」
③ 完了・結果「ちょうど〜した/〜してしまった」
並べて比べると違いがハッキリする
同じような文でも、過去形か現在完了形かでニュアンスが変わります。
| 過去形 | 現在完了形 |
|---|---|
| I went to America. アメリカに行った(過去の事実) |
I have been to America. アメリカに行ったことがある(経験) |
| Did you eat lunch? 昼ごはん食べた?(過去) |
Have you eaten lunch yet? もう昼ごはん食べた?(今の状態) |
| He was sick last week. 先週は具合が悪かった(今は不明) |
He has been sick since Monday. 月曜からずっと具合が悪い(今も) |
特に have been to(行ったことがある=今は戻っている)と have gone to(行ってしまった=今ここにいない)の違いは試験でもよく問われます。
見分けるカギは「一緒に使う言葉」
どちらを使うか迷ったら、文に出てくる"時間の言葉"で判断できます。
| 過去形と相性が良い | 現在完了形と相性が良い |
|---|---|
| yesterday, last week, 〜 ago, in 2020, when 〜, then |
just, already, yet, ever, never, since 〜, for 〜, recently, so far |
よくある間違い
なお、現在完了形でセットになりやすい since と for は、since が「起点(〜以来)」、for が「期間の長さ(〜の間)」です。例:since 2020 / for five years。
よくある質問(FAQ)
現在完了形に「yesterday」は使えますか?
使えません。yesterday のように「いつ」が具体的に決まっている言葉は過去形と組み合わせます(I saw him yesterday)。現在完了形は just / already / yet / since / for などと使います。
have been to と have gone to の違いは?
have been to は「〜へ行ったことがある(今は戻っている)」という経験、have gone to は「〜へ行ってしまった(今ここにいない)」という結果を表します。
「経験」を表すのはどちらですか?
現在完了形です。ever(今までに)、never(一度も〜ない)、回数(twice, three times)などと一緒に使うと「〜したことがある」という経験の意味になります。
since と for はどう使い分けますか?
since は起点(since Monday=月曜から)、for は期間の長さ(for two years=2年間)を表します。どちらも現在完了形の「継続」でよく使います。
まとめ
過去形は「過去の一点」、現在完了形は「過去と今のつながり」。この一言と、「具体的な過去の時点があるときは現在完了形は使わない」というルールを押さえれば、ほとんどの場面で正しく選べます。あとは例文を声に出して、体に染み込ませていきましょう。