過去に始まった動作が今も続いていることを強調するとき、現在完了進行形を使えます。基本形は have / has been + 動詞の-ing形 です。They have been practicing soccer since April. なら、4月に練習を始め、今も続けています。現在進行形や現在完了と形が似ていますが、過去から現在までの時間の流れを一つにつなぐ点が特徴です。been を忘れず、since と for も正しく選びましょう。
基本ルール
現在完了進行形は 主語 + have / has + been + 動詞の-ing形 で作ります。I have been studying、She has been studying のように、主語が三人称単数なら has、それ以外なら have です。been は be の過去分詞で、省略できません。
この形は、過去に始まった活動が今も進行中であることや、その活動がどれほど続いているかを強調します。It has been raining for two hours. は「2時間ずっと雨が降っています」で、2時間前から今まで雨が続いています。
状態の継続には、現在完了を使うのが基本です。I have known Ken for five years. とし、通常 have been knowing にはしません。一方、study、practice、work、wait のような活動は現在完了進行形とよく合います。
作り方・使い方
最初に、動作が過去に始まり、現在まで続いているかを確認します。次に主語に合う have または has を置き、必ず been、最後に -ing 形を続けます。「彼女は勉強し続けています」なら She has been studying. です。
since は開始時点に使います。since six、since Monday、since April のように、「いつ始まったか」を示します。She has been studying English since six. は「彼女は6時からずっと英語を勉強しています」です。
for は期間の長さに使います。for two hours、for three weeks、for a long time のように、「どのくらい続いたか」を示します。We have been waiting for thirty minutes. は「私たちは30分間ずっと待っています」です。
現在進行形は今の一場面、現在完了進行形は過去から今までの継続を表します。She is studying now. は今勉強中、She has been studying since six. は6時から今まで継続中です。開始点や期間が大切なら現在完了進行形を選びます。
否定文は have / has not been + -ing、疑問文は Have / Has + 主語 + been + -ing? です。Has he been sleeping? は「彼はずっと眠っているのですか」です。疑問文でも been を残します。
例文
They have been practicing soccer since April. は「彼らは4月からずっとサッカーを練習しています」です。複数主語なので have、開始時点なので since April です。
It has been raining for two hours. は「2時間ずっと雨が降っています」です。形式的な主語 It は単数なので has、期間の長さには for を使います。
I have been reading this book all afternoon. は「私は午後ずっとこの本を読んでいます」です。読む活動が午後から現在まで続いていることを強調します。まだ読み終わっていない可能性があります。
How long have you been waiting? は「どのくらい待っていますか」です。継続時間を尋ねる How long の後ろに、現在完了進行形の疑問文を続けます。
よくある間違い
誤りの She has studying English since six. は、has と studying の間の been がありません。正しくは She has been studying English since six. です。形を四つの部分に分けて確認します。
They have been practice soccer for an hour. は、been の後ろが原形です。正しくは They have been practicing soccer for an hour. です。現在完了進行形の最後は動詞の -ing 形にします。
I have been knowing her for years. は、状態動詞 know を進行形にしています。正しくは I have known her for years. です。知識や関係の状態には現在完了を使うのが基本です。
確認問題
He has playing the piano since noon.に不足する語を補い、正しい現在完了進行形にしてください。- 「私たちは3時間ずっと歩いています」を、期間を表す
forと現在完了進行形で英語にしてください。 - 「あなたはどのくらいここで働いていますか」を、
How longで始まる疑問文にしてください。
解答
He has been playing the piano since noon.です。hasの後ろにbeenを置き、playingを続けます。We have been walking for three hours.です。主語Weにhave、期間にfor three hoursを使います。How long have you been working here?です。How longの後ろをhave + you + been + workingの順にします。
まとめ
現在完了進行形は have / has been + 動詞の-ing形 で、過去から今まで続く活動や、その継続を強調します。開始時点には since、期間の長さには for を使います。現在進行形は今の一場面、現在完了進行形は過去から現在までの流れを示します。been と -ing を両方確認し、know など状態動詞の継続には現在完了を使いましょう。比較するときは、She is studying now.、She has studied English for three years.、She has been studying for two hours. を並べます。一つ目は今の一場面、二つ目は学習歴という継続、三つ目は二時間続く活動を強調します。活動がちょうど止まった直後でも、現在に証拠が残れば You are wet because you have been running. のように最近までの継続を表せます。初心者はまず今も続く例を中心にし、主語に合う have / has、必須の been、最後の -ing、since / for の順で点検しましょう。
