現在完了進行形(have been + -ing)
have / has been + -ing で続いている動作を表し、現在完了形と使い分けます。
説明
現在完了進行形は、過去から現在まで続いている動作を強調します。
「ずっと待っています」「さっきから勉強し続けています」のように、ある動作が過去から今まで続いていることを強調したいときに使います。
形は have / has been + 動詞-ing。動作が続いていることを前に出します。
現在完了形が状態・結果・経験を表すのに対し、こちらは「動作が続いていること」を前に出す形です。
今回のゴール
- 現在完了進行形(have been + -ing)で「ずっと〜している」が言えるようになる
- 現在完了と現在完了進行形の使い分け(意味)を覚える
- 現在完了進行形の否定文で「ずっと〜していない」が言えるようになる
- 現在完了進行形の疑問文で継続が聞けるようになる
- 現在完了進行形で動作の結果や痕跡が言えるようになる
- 進行形にしない動詞(love / know 等の状態動詞)を覚える
現在完了進行形(have been + -ing)で「ずっと〜している」が言えるようになる
現在完了進行形は 「ずっと〜し続けている」という動作の継続を強調する表現です。
現在完了形が状態や結果を表すのに対し、現在完了進行形は動作そのものの継続を伝えます。
例文
I have been studying English for two hours.
私は2時間ずっと英語を勉強しています。
She has been reading this book since yesterday.
彼女は昨日からこの本をずっと読んでいます。
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年間住んでいます。
I have been living in Tokyo for 5 years.
私は東京に5年間ずっと住んでいます。
I have known him for 10 years.
私は彼を10年間知っています。
We have been having lunch for 30 minutes.
私たちは30分間昼食をとっています。
現在完了進行形の否定文で「ずっと〜していない」が言えるようになる
現在完了進行形の否定文(have / has not been + -ing)で「ずっと〜していない」と伝えます。
例文
I haven't been sleeping well lately.
最近よく眠れていません。
現在完了進行形の疑問文で継続が聞けるようになる
疑問形は「ずっと〜しているのですか?」と尋ねる形です。肯定文が「You have been waiting.」なら、疑問文は「Have you been waiting?」になります。
例文
How long have you been waiting?
どのくらい待っていますか?
For about 30 minutes.
30分くらいです。
Has he been studying all day?
彼は一日中勉強しているのですか?
Yes, he has.
はい、しています。
現在完了進行形で動作の結果や痕跡が言えるようになる
現在完了進行形は、継続していた動作の結果が今見えている場合にも使います。動作はすでに終わっていても、その跡が今残っていることを表せます。
例文
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 等の状態動詞)を覚える