もう迷わない!現在完了進行形と現在完了形の違いと使い分けの極意
時制の混乱を完全に解消するため、現在進行形および過去完了進行形との対比を整理しておきましょう。
まず、現在進行形とのニュアンスの違いです。現在進行形(am/is/are + -ing)は「今この瞬間」を切り取ったスナップ写真のような表現であり、過去の長さには一切言及しません。
・現在進行形:I am waiting for you.(今、あなたを待っています)
・現在完了進行形:I have been waiting for you for an hour.(1時間前から今までずっと待たされています)
現在完了進行形には「時間の幅」が含まれるため、「どれほど長くその行為が続いているか」という話者の疲労感や感情のニュアンスが色濃く反映されます。
次に、過去完了進行形との違いです。過去完了進行形(had been + -ing)は、「過去の基準点」まで動作が続いていたことを表します。
・過去完了進行形:When he arrived, I had been waiting for two hours.(彼が到着したとき、私は2時間待ち続けていた)
・現在完了進行形:I have been waiting for two hours.(今この瞬間まで2時間待っている)
矢印の終着点が「過去のある時点」で止まっているのが過去完了進行形、「現在」にまで突き刺さっているのが現在完了進行形です。