ちょいデブ親父の英文法


現在完了進行形

現在完了進行形の形open
have been -ing

現在完了進行形は、現在完了と進行形 がひっついた形です。
~ing の形になるのは、read study wait write sing などの動作を表す動詞だけです。

例文:
I have been waiting for him since last night.
(私は彼を昨晩から待ち続けています。)
現在完了継続との違いopen
進行形になるのは、「動作を表す動詞」だけだと説明しましたが、これらの動詞が、現在完了の継続で使われることがあります。
次の2つの文を見てください。

[継続]
I have studied French since 2000.
(私はフランス語を2000年から勉強しています。)

[進行形]
I have been studying French since this morning.
(私はフランス語を朝からずっと勉強しています。)

上の継続の文は、2000年に思い立って、学校に通ったり、参考書を買ったりして、継続的に勉強していることを表します。

一方で下の進行形の文は、朝からぶっつづけで勉強していることを表します。

このように考えると、上の文は「勉強しているという状態」が続いていると見ることができます。
よって、動作を表す動詞は継続と進行形の両方に使うことができます。
現在進行形との違いopen
現在進行形と現在完了進行形はよく似ています。
例えば次の文を見て下さい。

[現在進行形]
I am reading this book.
(私はこの本を読んでいます。)

[現在完了進行形]
I have been reading this book.
(私はこの本をずっと読んでいます。)

これら2文の共通点と相違点は、

共通点…今現在本を読んでいる点
相違点…過去の時間を含むか否かの点

このようになります。

では次に少し視点を変えて、これらの文が答えになる質問を考えてみます。

進行形の「私はこの本を読んでいます。」が答えになる質問は、
⇒ 「今何してるの。」

現在完了進行形の「私はこの本をずっと読んでいます。」が答えになる疑問文は、
⇒ 「今まで何してたの。」

それぞれの質問をみると分かると思いますが、進行形が今その瞬間だけ、現在完了進行形が過去から今その瞬間までをそれぞれ表します。

結局、これら2文の一番の違いは、過去を含むかどうかです。
現在完了にもありますが、現在完了は過去~現在にまたがる事を理解していればOKです。
How long+現在完了進行形の疑問文open
「どのくらい~し続けていますか。」の意味になります。

例文:
How long have you been reading the book?
(あなたはどれくらいその本を読みつづけているのですか。)

答えは for と since どちらを使っても構いません。
ただ単に「For ~.」や「Since ~.」と答えるだけでもOKです。

[答え方]
I have been reading it for eight hours.
(私はそれを8時間読み続けています。)

I have been reading it since last night.
(私はそれを昨晩から読み続けています。)

For eight hours.
(8時間です)

Since last night.
(昨晩からです)