時制マスターガイド

現在完了形と過去形の違いを完全解説 — Present Perfect vs Simple Past

“I saw it”?それとも“I have seen it”?どちらも過去の動作を表すのに、なぜ英語ではどちらかを選ばせるのでしょうか。その答えはたった1つの考え方です。それは「時間が終わっているか、まだ続いているか」。この考え方と、答えを一瞬で教えてくれるシグナルワードを覚えれば、現在完了形と過去形の迷いがなくなります。

11分で読める
約2,200文字

現在完了形 vs 過去形 チェック

現在完了形と過去形、正しい時制を選べるか確認しましょう。

1. 「I ___ London yesterday.」の空欄に当てはまる正しい表現はどれですか?

2. 現在(いま)に影響を与えている過去の動作を表しているのはどれですか?

3. 「彼のことを5年間知っています」を正しく英訳すると?

核心の違い:終わった時間か、まだ続く時間か

過去形(Simple Past)は、今から明確に切り離された「終わった時間帯」の動作に使います — yesterday、last week、in 2019、an hour ago など。現在完了形(Present Perfect)は、「まだ開いている時間帯」(today、this week、これまでの人生)の動作、または「結果が今も重要」な過去の動作に使います。

過去形(Simple Past)

終わった時間 ⏱️

動作は過去に完全に終了。時点が明らか、またははっきり分かっています。

• I lost my keys yesterday.

• She finished the report last night.

現在完了形(Present Perfect)

現在へのつながり 🔗

過去に始まって今も続いている、または結果が今も重要です。

• I have lost my keys!(今も見つからない)

• She has finished the report.(今すぐ使える)

定番のテスト文を比べてみましょう。I lost my keys は「過去の物語」、I have lost my keys は「今の問題(今すぐ鍵が必要)」を表します。まったく同じ動作でも、「終わった物語」を語るのか「今の結果」を伝えるのかで、時制が決まるのです。

現在完了形の2つの役割:経験と結果

現在完了形には主な仕事が2つあります。1つ目は経験。人生の中で「これまでに一度でも」起こった動作で、具体的な時点には触れません:I have visited Japan(人生のどこかの時点で)。2つ目は結果。今に目に見える影響を残している過去の動作です:He has broken his leg(だから今は歩けない)。

経験:Have you ever eaten Thai food? I have tried scuba diving.
結果:The train has left(だから乗り遅れた). I have cleaned the kitchen.(だから今はきれい)

具体的な時点がなく「これまでの人生」の話なら、現在完了形が自然な選択です。しかし yesterday や in 2019 のような「終わった時間」のマーカーが付いた瞬間、必ず過去形に切り替えます。

過去形(Simple Past):はっきり終わった時間を語る

過去形は、動作を過去の明確に終わった一点に固定します。物語を語るとき、完了した期間について話すとき、そして時間が明示されている(またははっきり分かる)ときに使います:We visited Rome in 2019She called me an hour agoHe worked there for five years(そして今はもう働いていない)。

時点が明示:I saw her yesterday. They moved here in 2020.
終わった期間:He lived in Dublin for a year(その章はもう閉じた).

対比も見ておきましょう。I have lived in Dublin for a year(今も住んでいる)と I lived in Dublin for a year(もう住んでいない)。期間そのものは同じでも、「現在とのつながり」が時制を決めます。

シグナルワードで瞬時に判断する

特定の言葉は、ほぼ常にどちらかの時制を選ばせます。現在完了形は ever / never / just / already / yet / so far / since / up to now、そして today・this week(まだ続く期間)と一緒に使います。過去形は yesterday / ago / last week / in 2019 / when I was young / then と一緒に使います。

時制シグナルワード例文
過去形yesterday, ago, last week/year, in 2019, when I was a childWe met two days ago.
現在完了形just, already, yet, never, ever, since, for, recently, so farI have just finished my work.

ever / never と現在完了形、ago / last と過去形、というペアを覚えておけば、迷ったときの即効チェックになります。シグナルワードがない場合は、基本に立ち返って「終わった時間か、まだ続く時間か」を判断しましょう。

have been と have gone の違い

現在完了形のもっともわかりやすいテストが、beengone の使い分けです。have been to は「行って戻ってきた」。have gone to は「行ったままで、まだそこにいる(または移動中)」です。

been(戻ってきた):I have been to Paris twice. Have you ever been to Canada?
gone(まだ帰っていない):She has gone to the store — she will be back soon. He has gone to Japan for a year.

その人がまだ戻っていなければ gone、旅が完了していれば been を使います。この小さなペアにこそ、現在完了形の中心的な考え方「過去の動作が現在と関係を持っている」が表れています。

日本人が特に間違いやすいポイント

時制のミスは、主に3つのパターンで起きます。1つ目は「終わった時間」のマーカーと現在完了形を一緒に使う間違い:“I have visited Rome last year” — last year があるので過去形で I visited Rome last year とします。2つ目は助動詞の欠落:“I seen the film” ではなく I have seen the film(または I saw the film)。3つ目は「今の結果」が重要なのに過去形を使ってしまう間違い:“The door is locked — I lost my key” は I have lost my key とすべきです。

💡直し方のコツ:まず「終わった時間」のマーカー(yesterday, ago, last → 過去形)をチェック。次に、その過去の動作が今も影響しているか(結果 → 現在完了形)をチェック。この2ステップでミスは激減します。

シグナルワードを深掘り:since / for と already / yet

シグナルワードの中でも、sincefor は特に重要です。どちらも「今も続いている期間」を表しますが、使い方は全く違います。

since + 時点:since 2015 · since Monday · since I was a child(「始まりの点」を指す)
for + 期間:for five years · for two weeks · for a long time(「長さ」を表す)

例文で確認しましょう。I have lived here since 2015.(2015年からずっとここに住んでいる)/ I have known her for ten years.(彼女と知り合って10年になる)

alreadyyet も押さえましょう。already は「もう〜した」(肯定文・疑問文)、yet は「まだ〜していない」(否定文・疑問文)で使います。I have already finished.(もう終わった)/ I haven’t finished yet.(まだ終わっていない)/ Have you finished yet?(もう終わった?)。already は have と動詞の間、yet は文末、と位置もセットで覚えると迷いません。

have been / have gone をビジネス・日常でもっと使い分ける

been と gone の使い分けは、ビジネスでも日常でも頻出です。さらに例文を追加して、ニュアンスの差をしっかり掴みましょう。

been(戻ってきた):I have been to the new office.(新しいオフィスに行ったことがある)· She has been to the bank twice today.(彼女は今日、銀行に2回行ってきた)
gone(行ったきり):He has gone to the client’s office.(彼は取引先に出かけたきりだ=今もそこにいる)· They have gone to lunch.(彼らは昼食に行ったまま戻っていない)

電話で「今はいません」と伝えたいときは、She has gone to a meeting.(会議に出ています)が自然です。gone を使うと「その人が今、そこにいないこと」がはっきり伝わります。旅が完了していれば been、まだ戻っていなければ gone という基本に立ち返って判断しましょう。

継続用法:「ずっと〜している」を表す現在完了

現在完了形には、経験・結果に加えて3つ目の役割「継続」があります。過去のある時点から始まった状態が今も続いていることを表します。日本語の「ずっと〜だ」に近い感覚です。

• I have lived in Osaka since 2018.(大阪に2018年からずっと住んでいる)

• She has worked for this company for three years.(彼女はこの会社で3年間働いている)

• We have known each other since college.(私たちは大学時代からの知り合いだ)

• The weather has been cold this week.(今週は寒さが続いている)

継続用法では、yesterday や last year のような「終わった時間」のマーカーは使えません。since / for とセットで使うのが基本です。I lived in Osaka for a year.(1年間住んでいた=今は住んでいない)と対比して覚えると、時制の役割が一層はっきりします。

現在完了形と過去形に関するよくある質問

「I live here since 2 years.」は本当に間違いですか?

はい、典型的な誤りです。今もここに住んでいるなら、現在完了形と「for」を使います:I have lived here for 2 years.(since は「時点」を表すので、since 2021 のように使います)

「I have visited Rome last year.」は正しいですか?

間違いです。last year は「終わった時間」を表すので、過去形で I visited Rome last year. とします。現在完了形を使うのは、時点を表さず「これまでの人生で」と語るときです(I have visited Rome twice.)。

「I have been to Tokyo.」と「I went to Tokyo.」はどう違いますか?

現在完了の have been to は「東京に行った経験がある」(今どこにいるかは関係ない)ことを表します。過去形の went to は「過去のある時点で東京に行った」ことを表します。例: I have been to Tokyo twice.(東京には2回行ったことがある)/ I went to Tokyo last spring.(去年の春、東京に行った)

「since five years」はなぜ間違いなのですか?

since の後には「時点」がきます。期間(長さ)を表したいなら for を使うので、正しくは for five years です。since を使いたい場合は、始まりの点を示して since 2019 とします。「since + 点」「for + 長さ」とセットで覚えましょう。

英語の時制をもう迷わない

PromGee の AI 練習で、現在完了形や過去形を正しく使い分けられるようになりましょう。