過去から現在まで継続している動作を have been + 動詞-ing で表す。
現在完了進行形とは、過去から現在まで継続している動作を表す形です。
形は have/has been + 動詞-ing。過去のある時点から今まで動作が続いていることを強調します。
現在完了形との違いは、現在完了進行形は「動作の継続」に焦点を当てることです。(例:I have been studying. = さっきからずっと勉強している)
文法ルール
現在完了進行形は「have/has been + 動詞-ing」の形で、過去から現在まで継続している動作を表します。主語が三人称単数(he / she / it など)の場合は has been、それ以外は have been を使います。
例文
I have been studying English for two hours.
私は2時間ずっと英語を勉強しています。
解説: have been + studying(study の-ing形)で「ずっと勉強し続けている」ことを強調します。
She has been reading this book since yesterday.
彼女は昨日からこの本をずっと読んでいます。
解説: 主語が三人称単数(he / she / it など)の She なので has been + reading。since yesterday で開始時点を示します。
It has been raining all day.
一日中ずっと雨が降っています。
解説: It(天気)が主語なので has been + raining。all day で継続期間を表します。
文法ルール
現在完了形(have + 過去分詞)は状態の継続や完了・結果を表し、現在完了進行形(have been + -ing)は動作の継続を強調します。動作動詞では両方使えますが、状態動詞(know, like, 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年間知っています。
解説: know は状態動詞なので進行形にできません。現在完了形のみ使用。
文法ルール
否定形は have/has not been + -ing、疑問形は Have/Has + 主語 + been + -ing です。for(期間)や since(起点)とよく一緒に使われます。
例文
I haven't been sleeping well lately.
最近よく眠れていません。
解説: haven't been + sleeping で否定文。lately(最近)と相性が良い表現。
How long have you been waiting?
どのくらいずっと待っていますか?
解説: How long で期間を尋ねる疑問文。Have you been + waiting の語順。
They have been working together since 2020.
彼らは2020年からずっと一緒に働いています。
解説: since 2020 で開始時点を明示。have been + working で継続を強調。
I have been knowing him for 10 years.
I have known him for 10 years.
解説: know は状態動詞なので進行形にできません。
She has been go to school.
She has been going to school.
解説: been の後は動詞の-ing形を使います。
I have been study for two hours.
I have been studying for two hours.
解説: study の-ing形は studying です。y を i に変えて ing を付けます。