現在完了形の継続用法|使い方や現在完了進行形との違い、頻出の前置詞まで徹底解説

この記事では、現在完了形の「継続用法」をテーマに、その意味や使い方、for と since の使い分け、否定文・疑問文の作り方、「期間」や「起点」を尋ねる疑問文、現在完了進行形との違いなどについて、豊富な例文を用いて解説していきます。

現在完了形とは

現在完了形とは、過去に起こった出来事を現在と結びつけて表現する形式のことです。<主語 + have/has + 過去分詞>という形をとり、過去から現在までに完了したこと、経験したこと、継続したことなどを表します。(会話における have/has は、しばしば 've/'s のように省略されます。)

現在完了形は、文法書によってさまざまな分類がされていますが、本サイト(高校英文法の羅針盤)では、「結果(完了)」「経験」「継続」 の三つに分けて解説します。

この記事では「継続」の用法を取り上げますが、「結果(完了)」や「経験」の用法については、それぞれ以下の記事をご覧ください。

過去分詞の作り方

本格的な説明に入る前に、過去分詞の作り方を復習しておきましょう。

多くの動詞は、語尾にedをつけることで過去形や過去分詞にすることができます。このような動詞を規則動詞と言います。

ただし、規則動詞の語尾の形によって、edをそのままつけることができない場合があります。下の表で確認してください。

eで終わる規則動詞 子音字+yで終わる規則動詞 短母音+子音字で終わる規則動詞
dをつける yをiに変えてedをつける 子音字を重ねてedをつける
[例] advise\toadvised [例] study\tostudied [例] stop\tostopped

また、規則動詞の他に、過去形や過去分詞になるときに特殊な変化をする不規則変化動詞もあります。下の表は変化のタイプを4つにまとめたものです。

A-A-A型 A-B-C型
例)
put-put-put
cut-cut-cut
hit-hit-hit
例)
break-broke-broken
go-went-gone
speak-spoke-spoken
A-B-B型 A-B-A型
例)
make-made-made
tell-told-told
hear-heard-heard
例)
come-came-come
become-became-become
run-ran-run

なお、過去分詞の詳しい用法については、こちらを参照してください。

現在完了形:「継続」の用法とは

現在完了形の「継続」の用法は、ある状態が過去のある時点から現在まで継続していることを表します。

まずは例文を見て、現在形と現在完了形の違いを確認してみましょう。

(1) I live in Japan.
私は日本に住んでいる。

(2) I have lived in Japan for ten years.
私は10年間ずっと日本に住んでいる。

(1)の現在形は、「住んでいる」という現在の状態を表していますが、(2)の現在完了形は「住んでいる」状態が過去(10年前)から現在まで継続していることを表しています。

状態動詞と動作動詞

英語の動詞は、「状態」を表す状態動詞と「動作」を表す動作動詞の二種類に分類することができます。

状態動詞には、know、like、live などの一般動詞や be動詞が含まれます。

動作動詞は一般動詞の大部分を占め、eat、play、study、walk など、多くの動詞が当てはまります。

現在完了形の継続用法は「状態の継続」を表す用法なので、状態動詞を使います

一方、「動作の継続」を表す場合は、この記事の後半で説明する現在完了進行形を使います

なお、状態動詞と動作動詞の詳しい解説については、こちらの記事を参照してください。

for と since の使い分け

現在完了形で「継続」の意味を表す場合、「どのくらい継続しているか」「いつから継続しているか」という内容を forsince で表します。

for は「ある状態が継続している期間」を表す前置詞で、「1年」「2か月」「3日」などの期間を表す語句を伴います。

一方、since は「ある状態が始まった起点」を表します。前置詞として「去年」「2か月前」「2010年」のような過去のある1点を示す語句を伴う場合と、接続詞として具体的な状況を表す節を伴う場合があります。

for の例

(3) I have been sick for two days.
私は2日間ずっと体調が悪い。

(4) We have known each other for one year.
私たちは知り合って1年になる。

since の例

(5) I have been sick since two days ago.
私は2日前からずっと体調が悪い。

(6) I have been sick since I had whiskey last night.
私は昨夜ウィスキーを飲んでからずっと体調が悪い。

(7) We have known each other since 2010.
私たちは2010年からお互いを知っている。

(8) We have known each other since we were in high school.
私たちは高校時代からお互いを知っている。

下の図を見て、for と since のイメージの違いを掴んでください。 sinceとforのイメージ

否定文・疑問文の作り方

現在完了形を用いた肯定文を否定文にする場合は、have/has の後ろに not をつけます。なお、have not/has not は haven’t/hasn’t のように省略することができます。

(9) He hasn’t been active on SNS lately.
彼は最近SNSであまり活躍していない。

現在完了形を用いた肯定文を疑問文にする場合は、have/has を主語の前に出します

(10) Has he been active on SNS lately?
彼は最近SNSで活躍していますか?

この疑問文に対する返答は、「Yes, he has.」「No, he hasn’t.」のようになります。

「期間」や「起点」を尋ねる疑問文

現在完了形で、ある状態が「どのくらい継続しているか」という「期間」を尋ねる場合は〈How long + have/has + 主語 + 過去分詞〜?〉という構文を使います。

(11) How long have you been sick?
あなたの体調の悪さはどれくらい続いていますか?

(12) How long have you known each other?
あなたたちは知り合ってどれくらい経ちますか?

一方、ある状態が「いつから継続しているか」という「起点」を尋ねる場合は〈Since when + have/has + 主語 + 過去分詞〜?〉という構文を使います。

(13) Since when have you been sick?
あなたはいつから体調が悪いですか?

(14) Since when have you known each other?
あなたたちはいつから知り合っていますか?

現在完了形の継続用法と現在完了進行形の違い

現在完了形の継続用法は、現在完了進行形とよく似ているため、混同されがちです。

上で紹介したように、現在完了形の継続用法は「状態の継続」を表す用法なので、状態動詞を使います

一方、「ずっと~し続けている」という 「動作の継続」を表す場合は、動作動詞を現在完了進行形で使います

現在完了進行形は<主語 + have/has + been + 動詞のing形>という形をとります。

× I have eaten for one hour.
〇 I have been eating for one hour.
私は1時間食べ続けている。

× How long have you done your homework?
〇 How long have you been doing your homework?
あなたが宿題をやり続けてどれくらい経ちますか?

なお、study、learn、stay、sleep、wait、work、play、rain、snow など、ある期間継続する動作や行為を表す動作動詞は、現在完了形でも「継続」の意味を表すことができます

この場合、現在完了形が習慣的な継続を表すのに対し、現在完了進行形は一時的な継続を表します。

(15) I have studied English for five years.(習慣的な継続)
私は5年間英語の勉強をしている。

(16) I have been studying English for two hours.(一時的な継続)
私は2時間ずっと英語を勉強し続けている。

現在完了進行形の詳しい解説については、こちらの記事を参照してください。

【補足】「~して〇年になる」の英語表現について

「彼が亡くなって3年になる」という内容を英語で表現する場合、以下のような様々な言い方が可能です。

(17) He has been dead for three years.

(18) Three years have passed since he died.

(19) It has been three years since he died.

(20) It is three years since he died.

(21) He died three years ago.

この場合、現在完了形の継続用法を使って、(17)~(19)のように表現するのが普通ですが、(20)や(21)のように、現在形や過去形を使った表現も可能です。

英作文や英会話の参考にしてください。

練習問題

最後に練習問題を解いてみましょう。

例題

次の日本文を英訳しなさい。

  1. 2時間ずっと曇っている。

  2. 今朝私が家を出てからずっと曇っている。

  3. あなたは何時間テレビを見続けているのですか?

  4. あなたはいつからテレビを見続けているのですか?

解答

次の日本文を英訳しなさい。

  1. It has been cloudy for two hours.

  2. It has been cloudy since I left home this morning.

  3. How many hours have you been watching TV?

  4. Since when have you been watching TV?

現在完了形の継続用法に使われる動詞は、「状態動詞」と「ある期間継続する動作・行為を表す動作動詞」の2種類です。多くの英文に触れて、この感覚を身につけてください。