えいたんごクイズ

現在完了形 — 完了・経験・継続の3用法をやさしく整理

現在完了形は 「過去のできごとが、いまの自分にどうつながっているか」 を表す形です。日本語にはちょうど一致する形がないため、英文法でつまずきやすいトピックの代表格。形は have / has + 過去分詞。意味は 完了・経験・継続 の3用法に分けると整理しやすく、用法ごとに一緒に使う副詞 (just / ever / for など) がほぼ決まっています。

この記事のポイント

  • 形は have / has + 過去分詞。3単現は has、それ以外は have
  • 3用法を 一緒に使う副詞 で見分ける: 完了 = just / already / yet経験 = ever / never / before継続 = for / since
  • 過去形と現在完了形の違い は「いまとつながりがあるか」。yesterday / 〜 ago と一緒には使わない

現在完了形の基本構造 — have / has + 過去分詞

主語によって have と has を使い分けます。3単現は hasそれ以外は have というシンプルなルールです。

主語 肯定文 否定文 疑問文
I / you / we / they have visited have not (haven't) visited Have ... visited?
he / she / it has visited has not (hasn't) visited Has ... visited?

過去分詞は、規則動詞なら 過去形と同じ -ed の形、不規則動詞は 動詞ごとに固有の形 です。過去形との違いは 基本3時制の記事 も参考になります。

用法1: 完了 — 「ちょうど〜したところ/もう〜してしまった」

過去に始まった動作が ついさっき終わった、または すでに終わっている ことを表します。「いまその結果が残っている」感覚です。一緒に使う副詞は just / already / yet

I have just finished my homework. — ちょうど宿題を終えたところだ。

She has already eaten lunch. — 彼女はもう昼食を食べてしまった。

Have you read the book yet? — もうその本を読みましたか?

He has not arrived yet. — 彼はまだ到着していない。

just(ちょうど) と already(もう) は 肯定文yet(まだ/もう) は 否定文・疑問文 で使うのが基本。位置にも違いがあり、just / already は have と過去分詞のあいだ、yet は 文末 に置きます。

💡 見分け方: just / already / yet があれば「完了」用法。

用法2: 経験 — 「〜したことがある」

過去から現在までの間に 少なくとも一度は経験している ことを表します。一緒に使う副詞は ever / never / before / once / twice / 〜 times

I have visited Kyoto twice. — 京都には2回行ったことがある。

Have you ever eaten sushi? — 寿司を食べたことはありますか?

She has never read this book before. — 彼女は以前この本を読んだことがない。

We have met him three times. — 私たちは彼に3回会ったことがある。

ever(これまでに) は主に疑問文、never(一度も〜ない) は否定の意味、before(以前に) は文末に置くのが定番。「行ったことがある」は have been to、「行ってしまった (今ここにいない)」は have gone to で使い分けます。

💡 見分け方: ever / never / before / 〜 times があれば「経験」用法。

用法3: 継続 — 「(過去から)ずっと〜している」

過去のある時点から始まった状態が いまもまだ続いている ことを表します。一緒に使う副詞は for + 期間since + 起点

I have lived in Tokyo for ten years. — 私は10年間ずっと東京に住んでいる。

She has known him since 2010. — 彼女は2010年からずっと彼を知っている。

We have studied English for five years. — 私たちは5年間ずっと英語を勉強している。

for の後ろは 期間(for ten years / for a long time)、since の後ろは 起点となる過去の時点(since 2010 / since last year / since I was a child) が来ます。継続用法でよく使われる動詞は live, know, work, study, want のように、状態を表す動詞や長く続けやすい動作です。

動作動詞 (work, study, run など) で「ずっと〜し続けている」と動作の継続を強調したいときは、現在完了進行形 (have/has been + V-ing) を使うのが自然です: I have been studying English for five years. — 5年間ずっと勉強し続けている。

💡 見分け方: for + 期間since + 起点 があれば「継続」用法。

過去形と現在完了形の違い

日本人が現在完了形でつまずく原因の多くは、過去形との使い分けです。判断基準はシンプルで、「いまとつながっているか」 の一点。

過去形

過去のある時点で起きて、すでに 切り離された出来事。yesterday / 〜 ago / last week のような時を表す語と一緒に使う。

I visited Kyoto last year. — 去年京都に行った。(去年の出来事として完結)

現在完了形

過去の出来事と 現在のつながり を表す。yesterday / 〜 ago と一緒に使えない。

I have visited Kyoto. — 京都に行ったことがある。(いまの自分の経験として持っている)

2 years ago」「last week」「yesterday」「when ...」のように 過去の特定の時点 を指す語があるなら、現在完了形ではなく 過去形 を選びます。これは英検でも頻出の判別ポイントです。

よく出る過去分詞リスト

現在完了形を使うには、不規則動詞の過去分詞を覚えるのが避けられません。よく出る形を一覧でまとめます。A-A-A 型(原形・過去形・過去分詞が同じ)、A-B-A 型(原形と過去分詞が同じ)、A-B-C 型(3つとも違う) で分類しています。

原形 過去形 過去分詞
A-A-A read read (/red/) read (/red/)
A-A-A cut cut cut
A-B-A run ran run
A-B-A become became become
A-B-C eat ate eaten
A-B-C go went gone
A-B-C write wrote written
A-B-C take took taken
A-B-C give gave given
A-B-C know knew known
A-B-C speak spoke spoken

have, do, get, find なども現在完了で頻出。過去分詞は had / done / got または gotten / found です。(get の過去分詞は、英国系英語では got、米国系では gotten が一般的) 語形変化はえいたんごクイズの単語ページにも記載しているので、迷ったら個別の語のページから確認できます。

よくある間違い

❌ I have visited Kyoto yesterday. → ⭕ I visited Kyoto yesterday.

yesterday は過去の特定時点を表すので、現在完了形ではなく 過去形 を選びます。〜 ago, last week, when 〜 も同様。

❌ He has went to school. → ⭕ He has gone to school.

have / has のあとは 過去分詞。go の過去分詞は went ではなく gone です。過去形と過去分詞の混同は最頻出ミス。

❌ I have lived here since five years. → ⭕ I have lived here for five years.

期間には for、起点(過去のある時点)には since。「5年間」は期間なので for を使います。since five years ago なら可。

△ Have you finished already? — 文法的には正しいが、ニュアンスに注意

already を疑問文で使うと「もう終わったの?」という驚き・意外性のニュアンスが乗ります。文法的に間違いではありませんが、中立的に「もう終わった?」と尋ねたいなら yet を使います: Have you finished yet?

❌ She have arrived. → ⭕ She has arrived.

3単現の主語(she / he / it / 1人の人名)では has を使います。have との混同に注意。

英検・試験での出題パターン

  • 英検3級: have / has + 過去分詞の形と、不規則動詞の過去分詞が 空所補充 で頻出。
    例: I have already ( ) lunch. ① eat ② ate ③ eaten → 答え: ③ (eat-ate-eaten。have のあとは過去分詞)
  • 英検3級〜準2級: just / already / yet / ever / never / for / since の使い分けが 空所補充・並べ替え で出る。
    例: She has lived here ( ) 2010. ① for ② since ③ from → 答え: ② (起点なので since)
  • 英検準2級〜2級: 過去形と現在完了形の使い分け、yesterday との共起判定が 誤文訂正 で出る。
    例: I ( ) Tokyo last summer. ① have visited ② visited → 答え: ② (last summer は過去の時点)

過去分詞を含む不規則動詞を例文で覚えよう

えいたんごクイズなら、英検級・レベル別に動詞の語形変化を例文付きで練習できます。

関連ページ