現在完了進行形 (have been + ~ing)
Present Perfect Progressive
現在完了進行形は、過去から今まで「ずっと〜し続けている」ことを伝えるときに使います。たとえば「朝からずっと雨が降っている」のように、ある時点から今まで続いている動作を強調します。have/has + been + V-ing の形で、動作がまだ続いているニュアンスがあります。現在完了形と似ていますが、「続けている感」がもっと強いのがポイントです。
基本の形 (have/has been + V-ing)
現在完了進行形は have/has + been + 動詞の-ing形で作ります。主語が he/she/it のときは has、それ以外は have を使います。「過去のある時点からずっと〜し続けている」という意味で、動作がまだ続いている感じがします。
S + have/has + been + V-ing
I have been studying English for two hours.
私は2時間ずっと英語を勉強しています。
She has been reading that book since morning.
彼女は朝からずっとその本を読んでいます。
It has been raining all day.
一日中ずっと雨が降っています。
They have been waiting for the bus for 30 minutes.
彼らは30分間ずっとバスを待っています。
We have been living here since 2020.
私たちは2020年からここに住んでいます。
He has been playing the piano for an hour.
彼は1時間ずっとピアノを弾いています。
I have been learning Japanese since last year.
去年から日本語を学び続けています。
The baby has been crying for ten minutes.
赤ちゃんは10分間ずっと泣いています。
| 主語 | have/has | 例文 |
|---|---|---|
| I / You / We / They | have | I have been running. |
| He / She / It | has | She has been sleeping. |
「ずっと〜している」と言いたいときはこの形! I've been ... / She's been ... と短縮することが多いよ。
for と since の使い方
for は「〜の間」で期間を表し、since は「〜から」で起点を表します。現在完了進行形でとてもよく使う2つの言葉です。for のうしろには時間の長さ(2 hours, 3 days, 5 years)、since のうしろには始まった時点(Monday, 2020, I was 5)がきます。
I have been playing soccer for three hours.
3時間ずっとサッカーをしています。
She has been dancing since 4 o'clock.
彼女は4時からずっと踊っています。
He has been sleeping for 10 hours.
彼は10時間ずっと寝ています。
We have been waiting since noon.
正午からずっと待っています。
They have been building that house for six months.
彼らは6か月間ずっとあの家を建てています。
I have been cooking since 3 PM.
午後3時からずっと料理をしています。
She has been teaching for twenty years.
彼女は20年間ずっと教えています。
It has been snowing since last night.
昨夜からずっと雪が降っています。
| 使い分け | 意味 | うしろにくるもの | 例 |
|---|---|---|---|
| for | 〜の間 | 期間(2 hours, 3 days) | for two hours |
| since | 〜から | 起点(Monday, 2020) | since Monday |
for = 「どのくらいの間?」(How long?) に答える。since = 「いつから?」(Since when?) に答える。この使い分けを覚えよう!
現在完了形との違い
現在完了形(have + pp)は結果や完了に注目し、現在完了進行形(have been + V-ing)は動作の継続に注目します。「3冊の本を読んだ」(結果)なら現在完了形、「ずっと本を読んでいる」(継続中の動作)なら現在完了進行形です。どちらを使うかで、伝わるニュアンスが変わります。
I have read three books this month. (現在完了)
今月は本を3冊読みました。(結果=何冊読んだか)
I have been reading this book all day. (現在完了進行形)
今日一日ずっとこの本を読んでいます。(継続=まだ読んでいる)
She has written five emails. (現在完了)
彼女はメールを5通書きました。(結果)
She has been writing emails since morning. (現在完了進行形)
彼女は朝からずっとメールを書いています。(継続中)
He has painted the wall. (現在完了)
彼は壁を塗り終えました。(完了)
He has been painting the wall. (現在完了進行形)
彼はずっと壁を塗っています。(まだ塗っている途中)
They have eaten all the cake. (現在完了)
彼らはケーキを全部食べました。(完了)
They have been eating cake for an hour. (現在完了進行形)
彼らは1時間ずっとケーキを食べています。(まだ食べている)
| 時制 | 注目するところ | 例 | ニュアンス |
|---|---|---|---|
| 現在完了形 | 結果・完了 | I have read 3 books. | 読み終わった数 |
| 現在完了進行形 | 動作の継続 | I have been reading. | まだ読み続けている |
「何回?」「何個?」など数がポイント → 現在完了形。「ずっと〜している」と続いている感じ → 現在完了進行形。
動作動詞と状態動詞
現在完了進行形は動作動詞(run, eat, study など、実際に体を動かす動詞)と一緒に使います。状態動詞(know, like, believe, belong など、状態を表す動詞)はふつう進行形にしません。状態動詞のときは現在完了形を使います。
I have been running for 30 minutes. (動作動詞 OK)
30分間ずっと走っています。
She has been cooking dinner. (動作動詞 OK)
彼女はずっと夕食を作っています。
I have known him for five years. (状態動詞 → 現在完了形)
彼を5年間知っています。(have been knowing とは言わない)
She has liked chocolate since she was a child. (状態動詞 → 現在完了形)
彼女は子どものころからチョコレートが好きです。(has been liking とは言わない)
We have been walking for two hours. (動作動詞 OK)
2時間ずっと歩いています。
They have owned this house since 2010. (状態動詞 → 現在完了形)
彼らは2010年からこの家を所有しています。(have been owning とは言わない)
He has been practicing the guitar. (動作動詞 OK)
彼はずっとギターを練習しています。
I have believed in you since the beginning. (状態動詞 → 現在完了形)
最初からあなたを信じています。
| 分類 | 動詞の例 | 進行形 | 使う時制 |
|---|---|---|---|
| 動作動詞 | run, eat, play, study, cook | OK | 現在完了進行形 OK |
| 状態動詞 | know, like, love, believe, own | NG | 現在完了形を使う |
know, like, love, want, believe, belong, own ── これらは「状態」を表すから進行形にしない! I have been knowing ❌ → I have known ✅
日本語との比較
- ●日本語の「ずっと〜している」が現在完了進行形にあたります。「朝からずっと雨が降っている」→ It has been raining since morning.
- ●日本語では「2時間勉強している」と言うだけで、「ずっと続けている」のか「2時間勉強した(結果)」のかあいまいですが、英語では現在完了進行形と現在完了形で区別します。
- ●日本語の「〜の間」は for、「〜から」は since にあたります。「3時間」= for three hours、「月曜日から」= since Monday。
- ●日本語では「知っている」に「ずっと」をつけても自然ですが、英語では know は状態動詞なので have been knowing とは言えません。have known を使います。
- ●日本語の「まだ〜している途中」は現在完了進行形のニュアンスに近いです。「まだ宿題をしている」→ I have been doing my homework(まだ終わってない感じ)。
穴埋め問題
I ___ been studying for two hours.
She has been ___.
They have been waiting ___ ten minutes.
He has been practicing ___ Monday.
We have been ___ in this city since 2018.
クイズ
現在完了進行形は have/has been + 動詞ing で作る。
現在完了進行形は、過去から今まで続いている動作を表せる。
She has been reading since morning. は継続を表す文である。
関連トピック

アプリで英語を話してみよう
AIと英会話の練習ができます。無料でダウンロード!
無料ダウンロード