英文法ドリル2026-08-2910分で読める

現在完了形と過去形の使い分け 練習問題30問(即時採点つき)

過去を示す語(yesterday / in 2019 / last week)があれば過去形、結果・経験・継続・完了が今につながっていれば現在完了形。下の30問はクリックするたびに即採点され、日本語話者向けの解説が表示されます。

判断基準はただ一つです:出来事が「過去の一点」で終わっているなら過去形、今とつながっているなら現在完了形。yesterday、in 2019、last week などの過去を示す言葉が文にあれば必ず過去形、「〜したことがある」「もう〜した(今もその結果がある)」「〜以来ずっと」なら現在完了形を使います。

下の30問は中学レベルの基礎から入試・TOEICレベルまで3段階に分かれています。解答はクリックした瞬間に採点され、それぞれの問題に「なぜその形になるのか」を日本語で解説します。間違えた問題の解説こそが、日本語の感覚と英語のルールのズレを埋める一番の教材になります。

文の中に yesterday、last week、in 2019 など過去の時点を示す言葉があれば過去形、just、already、yet、since、for など今につながる言葉があれば現在完了形です。言葉がなければ「その出来事の結果が今も残っているか」で判断します。

現在完了形 vs 過去形 クイズ 30問

基礎(中学レベル)
Q1.I ___ my homework yesterday.
Q2.I ___ my homework. Look, I can show it to you.
Q3.She ___ to Kyoto in 2019.
Q4.「私は納豆を一度も食べたことがありません」の正しい英語は?
Q5.He ___ his keys. He can't open the door.
Q6.We ___ this movie last week.
Q7.She ___ in Osaka since 2010.
Q8.I ___ just had lunch, so I'm not hungry.
Q9.___ she call you yesterday?
Q10.They ___ each other for ten years.
標準(高校レベル)
Q1.My grandfather ___ this house in 1970.
Q2.I can't find my wallet. I think I ___ it at the office.
Q3.Look! Someone ___ the window.
Q4.Shakespeare ___ 38 plays.
Q5.I ___ him since we graduated from high school.
Q6.She ___ her homework yet.
Q7.I ___ to Hawaii three times.
Q8.___ you buy this bike?
Q9.He ___ in Tokyo for five years, but now he lives in Nagoya.
Q10.Hurry up! The train ___ yet.
応用(入試・TOEICレベル)
Q1.Productivity has improved since he ___ the company.
Q2.This is the first time I ___ a typhoon this close.
Q3.Mr. Tanaka ___ for this company for over twenty years, and he shows no sign of retiring.
Q4.She ___ her presentation by the time the client arrived.
Q5.次のうち文法的に正しい文は?
Q6.The writer ___ three novels before he turned thirty.
Q7.Sales ___ significantly since the new manager took over.
Q8.We ___ this problem many times over the past few months.
Q9.He ___ to America. He will come back next month.
Q10.That was the best meal I ___ in years.

ルールまとめ:時制は「言葉」で決める

現在完了形か過去形かは、意味で悩むより文の中の言葉で機械的に決めるのが確実です。過去を一点で指定する語(yesterday, last week, in 2019, two years ago, when I was a child)があれば過去形。今につながる語(just, already, yet, ever, never, since, for, recently, so far, over the past〜)があれば現在完了形です。

過去形 ← yesterday / last week / in 2019 / ago / when 〜 / 具体的な日時
現在完了形 ← just / already / yet / ever / never / since / for / recently / so far / This is the first time
経験「〜したことがある」→ have been(行ったままなら have gone)
継続「〜以来ずっと」→ have + 過去分詞(続いていなければ過去形に戻す)
迷ったら「その出来事、今も影響してる?」と自分に聞いてみてください。答えが Yes なら現在完了形、No なら過去形。この質問だけで8割の問題は解けます。

よくあるひっかけパターン

入試やTOEICで出るひっかけは、ほぼ次の4パターンに集約されます。どれも「一見現在完了形に見える言葉が入っているが、実は過去形」というものです。

for five years があっても「今は終わっている」→ 過去形(He lived in Tokyo for five years, but now〜)
since 節の中は過去形(since he joined / since I was a child)
故人・歴史上の人物の業績 → 必ず過去形(Shakespeare wrote 38 plays)
現在完了形の疑問文・否定文に When は使えない(When did you buy? は OK/When have you bought? は NG)
for や since を見たら即「現在完了形!」と反射する前に、文全体が「今も続いている話か」を確認。TOEICの長文では but now〜 でひっくり返されることがよくあります。

なぜ日本人はこの使い分けでつまずくのか

根本的な原因は、日本語に英語の「完了相(perfect aspect)」に対応する文法形式が存在しないことです。英語の現在完了形は「過去の出来事+今の状態」をひとつの形(have + 過去分詞)で表しますが、日本語は「もう宿題をした」「宿題をしたことがある」「2010年から住んでいる」をすべて普通の「〜した/〜している」で済ませてしまいます。つまり日本人の頭の中には、時制を「過去・完了」で分ける棚がそもそも用意されていないのです。

さらに厄介なのは、現在完了形の文を日本語に訳すとほぼすべて「〜した/〜ている」という過去形か現在形に聞こえることです。「I have lost my keys」=「鍵を失くしました(過去形に聞こえる)」、「I have lived in Osaka since 2010」=「2010年から住んでいます(現在形に聞こえる)」。このように日本語の訳と英語の形がズレているため、訳して考える学習法では永久に定着しません。ルールを言葉(yesterday があったら過去形、just / since / yet があったら完了形)で機械化し、繰り返し判定する訓練が必要です。

自分の英作文をチェックするとき、「動詞の前に have/has が本当に必要か、逆に yesterday があるのに完了形にしていないか」を数えてみてください。日本人のミスの大半は「過去形にすべき場所で完了形」「完了形にすべき場所で過去形」の2方向に集まります。

効果的な練習方法

時制は「知識」ではなく「反射」で決めるものです。1日30問を1週間、間違えた問題の解説を読み直してからもう一度解く、というサイクルが最も効率的です。このページは採点が即時なので、間違えた瞬間に解説が目に入り、記憶に残りやすくなっています。

そのあとは自分の英文で確かめましょう。PromGeeの無料英文法チェッカーに自分のメールや日記を貼り付けると、時制の判断ミスを指摘し、なぜその時制になるかを日本語で説明してくれます。自分が書いた文で間違えた経験は、ドリルより記憶に残ります。

もっと練習する

よくある質問

現在完了形と過去形の一番シンプルな見分け方は?

文の中に yesterday、last week、in 2019 など過去の時点を示す言葉があれば過去形、just、already、yet、since、for など今につながる言葉があれば現在完了形です。言葉がなければ「その出来事の結果が今も残っているか」で判断します。

「〜したことがある」は全部現在完了形ですか?

経験を表す「〜したことがある」は現在完了形(have + 過去分詞)です。ただし文の中に過去の時点(last year など)がある場合は「去年行った」=過去形になります。「I have been to Kyoto. / I went to Kyoto last year.」のように言葉で決まります。

have been と have gone の違いがわかりません

have been to は「行ったことがある(今は戻っている)」という経験、have gone to は「行ってしまって今も向こうにいる」という結果です。He has gone to America. He will be back next month. のように、帰ってくる予定の話なら have gone が正解です。

自分の英文の時制ミスをその場で確認

ルールを知っても、自分の文章で間違えると本番で直せません。PromGeeの無料英文法チェッカーにメールや日記を貼り付けると、時制の判断ミスを日本語で解説してくれます。

無料で英文をチェックする

参考資料・出典

本ガイドは定評のある英文法リソースに基づいています。さらに学びたい方は以下の参考資料をご覧ください。