現在完了進行形(have been + -ing)

have / has been + -ing で続いている動作を表し、現在完了形と使い分けます。

説明

現在完了進行形は、過去から現在まで続いている動作を強調します。

「ずっと待っています」「さっきから勉強し続けています」のように、ある動作が過去から今まで続いていることを強調したいときに使います。

形は have / has been + 動詞-ing。動作が続いていることを前に出します。

現在完了形が状態・結果・経験を表すのに対し、こちらは「動作が続いていること」を前に出す形です。

今回のゴール

  • 現在完了進行形(have been + -ing)で「ずっと〜している」が言えるようになる
  • 現在完了と現在完了進行形の使い分け(意味)を覚える
  • 現在完了進行形の否定文で「ずっと〜していない」が言えるようになる
  • 現在完了進行形の疑問文で継続が聞けるようになる
  • 現在完了進行形で動作の結果や痕跡が言えるようになる
  • 進行形にしない動詞(love / know 等の状態動詞)を覚える

現在完了進行形(have been + -ing)で「ずっと〜している」が言えるようになる

現在完了進行形は 「ずっと〜し続けている」という動作の継続を強調する表現です。
現在完了形が状態や結果を表すのに対し、現在完了進行形は動作そのものの継続を伝えます。

肯定文の形
主語 + have / has been + 動詞-ing(主語が三人称単数なら has)

例文

肯定文

I have been studying English for two hours.

私は2時間ずっと英語を勉強しています。

解説
have been + studying(study の -ing 形)で「ずっと勉強し続けている」ことを強調します。
肯定文(三人称単数)

She has been reading this book since yesterday.

彼女は昨日からこの本をずっと読んでいます。

解説
主語が三人称単数(he / she / it など)の She なので has been + reading。since yesterday で開始時点を示します。
肯定文(三人称単数)

Tom has been studying all day.

トムは一日中勉強しています。

解説
主語が Tom(三人称単数)なので has been + studying。all day で継続期間を表します。
よく使う時間表現

現在完了進行形は、for / since や all day のような時間表現と一緒に使うと、継続している長さや起点が伝わりやすくなります。

表現意味例文
for + 期間〜の間I have been waiting for 30 minutes.
since + 起点〜からShe has been working since 9 a.m.
all day / all morning一日中 / 午前中ずっとTom has been studying all day.
recently / lately最近I haven't been sleeping well lately.
How long ...?どのくらい〜?How long have you been studying?

現在完了と現在完了進行形の使い分け(意味)を覚える

現在完了形(have + 過去分詞)は状態の継続や完了・結果を表し、現在完了進行形(have been + -ing)は動作の継続を強調します。動作動詞では両方使えますが、状態動詞(know, like など)はふつう進行形にしません。have も「持っている」の意味では進行形にしにくい一方、have lunch のような動作の意味では進行形にできます。

現在完了形と現在完了進行形の違い
現在完了形現在完了進行形
have / has + 過去分詞have / has been + -ing
何を前に出すか結果・完了・状態の継続動作が続いていること
I have lived here for 5 years.I have been living here for 5 years.
伝わり方「住んでいる」という事実「住み続けている」という継続
状態動詞使える(I have known him.)ふつう使わない(ただし have には動作用法もある)

例文

現在完了形

I have lived in Tokyo for 5 years.

私は東京に5年間住んでいます。

解説
「東京に住んでいる」という今の事実・状態を前に出しています。5年間という期間は背景の補足で、住むという行為そのものを強く言う目的ではありません。
現在完了進行形

I have been living in Tokyo for 5 years.

私は東京に5年間ずっと住んでいます。

解説
「ずっと住み続けてきた」という継続を前に出しています。have lived と比べて、5年間続けてきた動きを強く言いたいときに進行形を選びます。
状態動詞(現在完了形)

I have known him for 10 years.

私は彼を10年間知っています。

解説
know は状態動詞なので進行形にはしません。この文では現在完了形を使います。
動作用法の have

We have been having lunch for 30 minutes.

私たちは30分間昼食をとっています。

解説
have は「持っている」ではなく「食事をとる」という動作なら進行形にできます。

現在完了進行形の否定文で「ずっと〜していない」が言えるようになる

現在完了進行形の否定文(have / has not been + -ing)で「ずっと〜していない」と伝えます。

否定文の形
主語 + have / has + not + been + 動詞-ing

例文

否定文

I haven't been sleeping well lately.

最近よく眠れていません。

解説
haven't been + sleeping で「ずっと〜していない」という否定の継続を表します。lately(最近)は現在完了進行形とよく一緒に使います。

現在完了進行形の疑問文で継続が聞けるようになる

疑問形は「ずっと〜しているのですか?」と尋ねる形です。肯定文が「You have been waiting.」なら、疑問文は「Have you been waiting?」になります。

疑問文の形
Have / Has + 主語 + been + 動詞-ing?

例文

疑問文(How long)
Q

How long have you been waiting?

どのくらい待っていますか?

A

For about 30 minutes.

30分くらいです。

解説
How long ...? で「どのくらいの間〜し続けていますか?」と期間を尋ねます。Have + 主語 + been + -ing? の語順です。
疑問文(Yes/No)
Q

Has he been studying all day?

彼は一日中勉強しているのですか?

A

Yes, he has.

はい、しています。

解説
疑問文は Has / Have + 主語 + been + -ing? の語順です。

現在完了進行形で動作の結果や痕跡が言えるようになる

現在完了進行形は、継続していた動作の結果が今見えている場合にも使います。動作はすでに終わっていても、その跡が今残っていることを表せます。

例文

動作の痕跡

I have been running.

走っていたんです。(だから汗をかいている)

解説
走っていた動作の結果として、汗をかいている状態が見えています。
動作の痕跡

He has been crying.

泣いていたんです。(だから目が赤い)

解説
泣いていた動作の結果として、目が赤い状態が見えています。

進行形にしない動詞(love / know 等の状態動詞)を覚える

状態動詞(know, like, have(持っている)など)は動作ではなく状態を表すため、ふつう進行形(-ing)にしません。「ずっと知っている」のように継続を表したい場合は、現在完了進行形ではなく現在完了形(have known)を使います。

進行形にしない状態動詞
分類動詞意味
認知know知っている
認知believe信じている
認知understand理解している
認知remember覚えている
感情like好きだ
感情love愛している
感情hate嫌いだ
感情want欲しい
所有have持っている
所有own所有している
所有belong属している
その他need必要だ
その他mean意味する
その他seem〜のようだ

間違えやすいポイント

I have been knowing him for 10 years.

I have known him for 10 years.

know は「知っている」という状態を表す動詞なので、継続を表すときは現在完了進行形ではなく現在完了(have known)を使います。

He has been waited for an hour.

He has been waiting for an hour.

現在完了進行形は have been + -ing で作ります。been の後ろは原形(go)でも過去分詞(waited)でもなく、必ず -ing 形にします。

まとめ

  • 現在完了進行形(have been + -ing)で「ずっと〜している」が言えるようになる
  • 現在完了と現在完了進行形の使い分け(意味)を覚える
  • 現在完了進行形の否定文で「ずっと〜していない」が言えるようになる
  • 現在完了進行形の疑問文で継続が聞けるようになる
  • 現在完了進行形で動作の結果や痕跡が言えるようになる
  • 進行形にしない動詞(love / know 等の状態動詞)を覚える