現在完了進行形とは?現在完了の継続との使い分け
現在完了進行形は「have / has been + 動詞のing形」で、過去に始まった動作が いまも続いていることを表します。現在完了の継続が状態を表すのに対し、こちらは動作の継続です。
中学3年で習う内容です。大人のやり直しにも対応しています。 最終更新 2026-08-21
- have / has been + 動詞のing形
- 動作がいまも続いていることを表す
- 現在完了の継続は状態、こちらは動作
- for や since と一緒に使うことが多い
まず1問やってみる
形は現在完了と進行形の組み合わせ
現在完了(have + 過去分詞)と進行形(be + ing形)が重なった形です。
have + been(be の過去分詞)+ ing形。
I have been studying English for three hours.
主語が三人称単数なら has been になります。
She has been studying English.
否定文は have / has のうしろに not、疑問文は have / has を前に出します。
現在完了と同じ作り方なので、新しく覚えることはありません。
現在完了の継続との違い
どちらも「ずっと〜している」と訳せるので、混同しやすいところです。
現在完了の継続は「状態」が続いていること。
I have lived in Osaka for five years.(5年間住んでいる)
現在完了進行形は「動作」が続いていること。
I have been studying English for three hours.(3時間ずっと勉強している)
live や know のように状態を表す動詞は、
進行形にしないので現在完了のまま使います。
study、read、play、wait、rain のように動作を表す動詞は、
続いていることを強調したいときに現在完了進行形を使います。
なお動作の動詞でも、現在完了の継続で言えることがあります。
その場合、進行形にすると「ずっと続けている」感じがより強くなります。
動作が終わったかどうか
もうひとつの違いです。
現在完了進行形は、その動作がいまも続いていることを表します。
I have been reading this book.(いまも読んでいる途中)
現在完了は、動作が終わった結果に目を向けることがあります。
I have read this book.(読み終えた)
同じ read でも、進行形にするかどうかで
「途中」か「終わった」かが変わります。
「いまもやっている最中だ」と伝えたいときに進行形を選びます。
for と since で期間を示す
現在完了と同じく、for と since がよく一緒に使われます。
for は期間の長さ。for three hours、for a week。
since は始まった時点。since this morning、since 2020。
How long have you been waiting?(どのくらい待っていますか)
という聞き方もよく使われます。
現在完了と現在完了進行形のどちらで答えてもよい場面が多いのですが、
「ずっとその動作をしている」と伝えたいなら進行形が自然です。
例文
I have been studying English for three hours.
私は3時間ずっと英語を勉強しています。
She has been waiting for you since noon.
彼女は正午からずっとあなたを待っています。
It has been raining since this morning.
今朝からずっと雨が降っています。
How long have you been playing the piano?
どのくらいピアノを弾いているのですか。
They have been working on this project for a month.
彼らは1か月間このプロジェクトに取り組んでいます。
My brother has been reading that book all day.
兄は一日中その本を読んでいます。
I have lived in Osaka for five years.
私は5年間大阪に住んでいます。
We have not been waiting very long.
私たちはそれほど長く待っていません。
音声は AI 合成です。作り方は音声についてをご覧ください。
よくある間違い
誤I have been knowing him for five years.
正I have known him for five years.
know は状態を表す動詞なので、進行形にしません。
状態が続いていることは、現在完了の継続でそのまま表せます。
進行形にする必要がありません。
誤I have been study English for three hours.
正I have been studying English for three hours.
been のうしろは ing形です。原形ではありません。
have been + ing形 でひとつの形だと考えてください。
誤She has been waiting for you since two hours.
正She has been waiting for you for two hours.
two hours は期間の長さなので for を使います。
since は「〜から」と始まった時点を示す語なので、
since two o'clock、since noon のように使います。
誤I am studying English for three hours.
正I have been studying English for three hours.
現在進行形は「いましている最中」だけを表し、
いつから続いているかは表せません。
過去から今まで続いていることを言うには、現在完了進行形を使います。