文法 / 時制
現在完了進行形
要点整理
現在完了進行形は、「have/has been+動詞のing形」という形で表され、過去に始まった動作が、現在まで(あるいは現在のごく直前まで)続いていることを強調する時制です。前の単元で学んだ現在完了形の継続用法(have+過去分詞、for/sinceを伴う)と意味が近いため、混同しやすい単元ですが、それぞれに向いている使い方の違いがあります。
基本の形と意味
have/has + been + 動詞のing形
I have been studying English for three hours.(私は3時間ずっと英語を勉強し続けている。)
この文は、「3時間前に英語の勉強を始めて、それが今もまだ続いている」ということを表しています。単に「英語を勉強したことがある」のではなく、「ずっと勉強し続けている」という、動作の継続そのものが強調されている点がポイントです。
現在完了形の継続用法との使い分け
現在完了形の継続用法(have+過去分詞)と現在完了進行形(have been+動詞のing形)は、どちらも「過去から現在までの継続」を表しますが、次のような違いがあります。
状態動詞は現在完了形(継続用法)を使う
know(知っている)、live(住んでいる)、like(好きだ) のような状態動詞は、それ自体が「継続している状態」を表す動詞なので、現在完了形の継続用法(have+過去分詞)で継続を表すのが基本です。
I have lived in this town for twenty years.(私は20年間この町に住んでいる。)
She has known him since they were students.(彼女は学生のころから彼を知っている。)
これらの文を無理に現在完了進行形にする(have been living、have been knowing など)必要はありません。特に know のような一部の状態動詞は、進行形にすること自体が不自然になります。
動作動詞は現在完了進行形で「継続中の動作」を強調できる
study(勉強する)、run(走る)、wait(待つ)、work(働く) のような動作動詞は、現在完了進行形にすることで、「その動作がずっと継続している」という臨場感や、「まだ終わっていない」というニュアンスを強調できます。
I have been waiting for you for an hour.(私はあなたを1時間ずっと待ち続けている。)
単に I have waited for you for an hour.(現在完了形)と言うよりも、have been waiting(現在完了進行形)を使うことで、「ずっと待ち続けている」という動作の継続感がより強く伝わります。
「ちょうど今終わったばかりの動作」を表す用法
現在完了進行形は、「今この瞬間もまだ続いている」場合だけでなく、「ついさっきまで続いていて、その影響が今も残っている」ことを表す場合にも使われます。
I'm tired because I have been running.(私は走っていたので疲れている。)
この文では、話している「今この瞬間」に走っているわけではなく、「ついさっきまで走っていた」という動作が、現在の疲れの原因になっていることを表しています。動作そのものはすでに終わっていても、その動作を「継続していた過程」として捉えている点が、現在完了進行形らしい使い方です。
現在完了形(完了用法)との比較
現在完了進行形と、現在完了形の完了用法(have+過去分詞)を比べると、次のような意味の違いが生まれます。
I have painted the wall.(私は壁を塗り終えた。)→ 動作が完了したことに焦点
I have been painting the wall.(私はずっと壁を塗り続けている。)→ 動作が継続していることに焦点(まだ終わっていない可能性もある)
1文目は「塗り終えた」という完了の結果に焦点がありますが、2文目は「塗るという動作をずっと続けてきた」という継続の過程に焦点があり、まだ作業が終わっていない可能性を含みます。
例題
例題1(基本)
問題
次の( )内の動詞を、現在完了進行形の正しい形に直しなさい。
It (rain) since this morning.
解答・解説を見る
since this morning(今朝から)という起点を表す語句があり、「雨が降る」という動作が今も続いていることを表したい文です。rain は動作動詞として扱えるので、現在完了進行形 have/has been+動詞のing形 にします。主語 it は3人称単数なので has を使います。
答え:has been raining
例題2(標準)
問題
次の文の間違いを指摘し、正しい文に直しなさい。理由も説明しなさい。
I have been knowing her for a long time.
解答・解説を見る
know(知っている)は、動作ではなく「知っている」という状態そのものを表す状態動詞です。状態動詞は進行形(現在完了進行形を含む)にはせず、現在完了形の継続用法(have+過去分詞)で継続を表します。
答え:I have known her for a long time.(knowは状態動詞なので、進行形ではなく現在完了形の継続用法を使う)
例題3(応用)
問題
次の2つの文の意味の違いを説明し、それぞれ日本語に訳しなさい。
- I have written three letters this morning.
- I have been writing letters this morning.
解答・解説を見る
1文目:現在完了形(完了用法)
three letters(3通の手紙)という具体的な完了した量が示されており、「3通の手紙を書き終えた」という動作の完了・結果に焦点があります。
訳:私は今朝、3通の手紙を書いた(書き終えた)。
2文目:現在完了進行形
具体的に何通書いたかには触れておらず、「手紙を書くという動作を、今朝からずっと続けている」という動作の継続そのものに焦点があります。話している時点でもまだ書き続けている可能性が高い文です。
訳:私は今朝からずっと手紙を書き続けている。
このように、同じ「手紙を書く」という内容でも、完了した結果(何通書いたか)を伝えたいときは現在完了形、動作が続いている過程そのものを伝えたいときは現在完了進行形を使う、という使い分けが重要です。
答え:1. 完了した結果に焦点(訳は解説内の通り) 2. 継続する動作の過程に焦点(訳は解説内の通り)
確認問題
問題
次の( )内の動詞を、現在完了進行形の正しい形に直しなさい。
They (play) soccer for two hours, and they still don't want to stop.
答え
have been playing(2時間ずっとサッカーをし続けており、まだ続いていることを強調する現在完了進行形)