完了進行形(have been ~ing)は、名前の通り完了形と進行形が合わさった表現なので、2つの用法をおさえていれば、難しくはありません。この完了進行形では rain/wait の動詞が頻出です。
完了進行形の形 完了形 have + 過去分詞 + 進行形 be ~ing ------------------------------------------------- 完了進行形 have been ~ing |
ex. | ( )内の語を適する形に直しなさい。 (1) I (know) him for a long time. 「私は長い間彼のことを知っています」 (2) She (talk) over the phone for three hours. 「彼女はもう3時間も電話で話をしている」 |
時制を考える場合はまずシグナルを探しましょう。(1) for[継続] のシグナルがあるので、完了形の時制を使うのが分かります。時間は、和訳の内容「知っています」から現在と分かり、現在時制の完了形が答えになります。
(1) | I (have known) him for a long time. |
では(2)です。これも同じように for[継続]と「話をしている」の和訳から現在の完了形となりますが、さて、今現在その行為をしているのか、していないのか、どちらでしょうか?もちろん「いる」。つまりこの文には「今~している最中だ」という進行形の意味も加わっているわけです。まとめると(2)の文は「3時間(完了形)+今も話している(現在進行形)」という内容を表し、「現在完了進行形」で表現されます。
(2) | She (has been talking) over the phone for three hours. |