先生
まずは現在完了進行形の解説を読み理解して(Input)、そして例文を読んで和訳することで知識を定着させていきます(Output)。
このページをしっかり読めば、現在完了進行形がマスターできるはずです!
もくじ
現在完了進行形とは
現在完了進行形はhave + been + 動詞のing形で表し、「ずっと〜している」という意味になります
時間軸でイメージするとわかりやすいです。
現在完了進行形は過去のある時点から現在まである動作がずっと続いていることを表します。
例文を見ていきましょう。
「私はずっとその雑誌を読んでいます。」
この例文では、現在から遠くない過去のある時点で雑誌を読みはじめて、それが現在でも続いていることを表しています。
以下のように、それがいつ始まったかを表す語句が一緒に使われることもあります。
「私は帰宅してから、ずっとその雑誌を読んでいます。」
また、その動作を継続している期間を示す場合もあります。
「私は2時間ずっとその雑誌を読んでいます。」

現在完了進行形の意味・表し方
意味・訳し方
現在完了進行形は前述の通り過去のある時点から現在まである動作がずっと続いていることを表していて、「ずっと〜している」と訳されます。
いくつかフレーズを挙げるので、定着させましょう。
ずっと読んでいる
10時からずっと勉強している
1時間ずっと歩いている
表し方
現在完了進行形はhave + been + 動詞のing形で表します。
これは現在完了進行形が、文字通り現在完了と進行形をあわせたものであることから分かります。
現在完了がhave + 過去分詞で。進行形がbe動詞 + 動詞のing形ですね。
これを合わせると、have + been + 動詞のing形となるわけです。
先生
現在完了進行形は「(ずっと)〜している」という意味で、have + been + 動詞のing形で表されるということですよね!
生徒
先生
先生
現在完了進行形でよく使われる語句
ここでは、現在完了進行形と一緒に使われる語句を確認していきましょう。
since「〜から」
まず、「〜から」という意味のsinceがよく使われます。
「彼があなたに会うために3時から待っています。」
sinceは期間の起点を表します。
現在完了進行形は「過去のある時点から現在まである動作がずっと続いている」ことを表しますが、その「ある時点」をsinceは表してくれます。
for「〜間」
forも現在完了進行形でよく使われる語句の一つです。
sinceが期間の起点を表す一方で、forはその期間の長さを表します。
「彼女は5時間ずっと運転しています。」
how long…?
また、How longもおさえておきましょう。
How longは期間を尋ねる表現です。
「あなたはここでどのくらい勉強していましたか?」
have been studyingで「ずっと勉強している」という意味ですが、その期間のhow longで聞いているという意味になります。
生徒
先生
ただ、思い出したんですが、have + 過去分詞の現在完了にも「(ずっと)〜している」の意味がありましたよね?
生徒
先生
現在完了進行形と現在完了形<継続用法>の違い
現在完了進行形は「(ずっと)〜している」というように、ある動作が現在までずっと続いていることを表します。
これは現在完了形の継続用法と同じです。
なので、両方とも同じ意味を表すことが可能です。
ではこれらの違いはどういうところにあるのでしょうか。
状態動詞の<継続>は現在完了、動作動詞の<継続>は現在完了進行形
まず、動詞の種類で区別することができます。
動詞には「状態動詞」と「動作動詞」に分けることができます。
状態動詞とはknowやlike、wantなど、状態を表す動詞です。
これらはどれも具体的な動作で表せないものです。
「知っている」も「好き」も「欲しい」も具体的な動作ではなく、ある状態を表していますね。
この状態動詞は現在完了進行形を使うことは出来ません。
したがって、これらの動詞を使って継続を表すときは、現在完了形を用います。
例文を見てみましょう。
「私たちは5年間ずっと知り合いです。」
knowは状態動詞なので、現在完了進行形が使えないので現在完了形を使って<継続>を表す必要があります。
明確に<継続>を表す
状態動詞は現在完了形しか使えないことは分かりました。
では動作動詞はどうでしょうか。
実は動作動詞は文法上、現在完了形も現在完了進行形も両方使えるのです。
I have been waiting for you. [現在完了進行形]
「君をずっと待っていたよ。」
まず、現在完了は<経験><継続><完了><結果>というように、4つの用法があります。
なので、I have waited for you.だけでは上記のどの用法にあたるのかがわかりません。
文脈によっては「君を待ったことがある。」と<経験>の意味かも知れないし、「君を待ったんだ」と<完了>の意味かも知れません。
しかし現在完了進行形には継続の用法しかないので、I have been waiting for you.というだけで明らかに「君をずっと待っていたよ。」と<継続>を表すことができます。
したがって、「君をずっと待っていたよ。」と言いたいときは、現在完了進行形がよく使われる傾向にあります。
現在完了進行形と現在進行形の違い
では、現在完了進行形と現在進行形の違いはどうでしょうか。
まずは以下の画像を見てください。
完了形は時間の幅を表すのに対して、進行形は点を表します。
現在完了進行形はいままで説明してきた通り、過去のある時点からその動作・状態が現在までずっと続いていることを表します。
例文のI have been waiting for you.であれば、「前からずっと君を待っているんだよ」というような意味になります。
一方で、現在進行形は現在の1点を表します。
なのでI am waiting for you.であれば、「君を待っているんだけど」というような意味になります。
現在完了進行形は過去から現在、現在進行形は現在の1点を表すということを覚えておきましょう。
受動態(受け身)の現在完了進行形
受動態(受け身)の文で現在完了進行形を使いたいときは、have been being 動詞の過去分詞という形になります。
例文を確認してみましょう。
「その本は2010年からずっと多くの人によって読まれている。」
現在完了で、The book has read by many people since 2010.としてもほぼ同じことが表せるので、受動態の現在完了進行形はあまり使われませんが、おさえておきましょう。
現在完了進行形の例文
肯定文
「彼はずっと雑誌を読んでいる。」
まず、現在完了進行形はhave + been + 動詞のing形ですよね。
今回はHeと、三人称単数が主語なので、haveはhasになります。
なので、has been readingで現在完了進行形だと気付きます。
そして、現在完了進行形は「(ずっと)〜している」と訳します。
なので、has been readingで「ずっと読んでいる」ですね。
「彼女は3時間ずっと英語を勉強している。」
have been playingで現在完了進行形に気付きますね。
なので、have been playing tennisで「ずっとテニスをしている」と分かります。
for over an hourは「1時間以上」と訳します。
overは色々な意味がありますが、ここでは「〜以上」の意味で使われています。
over = more than = 「〜以上」です。セットで覚えましょう。
否定文
「彼はニュースや新聞にずっと注意を払っていませんでした。」
has not been payingで現在完了進行形の否定文と分かります。
「ずっと払っていなかった」ですね。
そしてpay attention to…で「〜に注意を払う」という意味になります。
このフレーズはよく使われるので、pay attention toでセットで覚えるようにしましょう。
「私は彼のエッセイを最近ずっと読んでいなかった。」
have not been readingで現在完了進行形の否定文と分かります。
「ずっと読んでいなかった」ですね。
recentlyは「最近」という意味です。
「最近」は以下の4つをセットで覚えましょう。
- recently: 過去形・完了形と使う
- lately: 完了形と使う
- these days: 現在形と使う
- nowadays: 現在形と使う
現在完了進行形は完了形なので、recentlyやlatelyと相性がいいことも覚えておきましょう。
「私たちはここ数年話していなかったね。」
have not been talkingで現在完了進行形の否定文と分かりますね。
「ずっと話していなかった」です。
talk with each otherは「お互いに話す」です。
talkは、talk to…「〜に話しかける」と、talk with…「〜と話す」をセットで、
お互いにはeach otherとone anotherをセットで覚えましょう。
for yearsのforは上でやった期間を表すforです。
for yearsは「数年間」という意味になります。
同様に、for monthsは「数カ月間」、for daysは「数日間」となります。
現在完了進行形と現在進行形の違い
現在完了進行形と現在
疑問文
「また飲んでたの?」
Have you been drinkingで現在完了進行形の疑問文とわかります。
「ずっと飲んでいたの?」という意味ですね。
againは「また」です。
この場合、現在完了進行形は<現在までずっとその動作が続いていることを表す表現>なので、
いまも飲んでいるという意味で「また飲んでるの?」という訳でも大丈夫です。
現在完了進行形は厳密にいま現在までその動作が続いていなくても、直前でその動作が終わっていることを表す場合も使えるので覚えておきましょう。
「Uberでどのくらい働いているの?」
How long have you been workingまでで現在完了進行形の疑問文だと分かります。
How longがついているので、workが継続した期間を聞いているということが分かりますね。
「どのくらい働いていたの」となります。
work for…は後ろに会社名を取って「〜で働く」という意味になります。
「いったいどのくらいこれを私から隠していたの?」
how long have you been hidingで現在完了進行形の疑問文だと分かります。
これもhow longなので、hideした期間を聞いている形ですね。
hide this from meはそのまま「これを私から隠す」なので、「これをどれくらい私から隠していたの?」となります。
最後のexactlyですが、これは「まさに」とか「確かに」と訳されますが、疑問文の先頭について「いったい」という意味にもなるので、覚えておきましょう。
参考文献
最後に、この記事を書くにあたって参考にした書籍や、更なる学習に使える書籍をご紹介します。
- 一億人の英文法(大西泰斗 他, ナガセ)
- 英文法の核(西きょうじ, ナガセ)
- 基本文法から学ぶ 英語リーディング教本(薬袋善郎, 研究社)
- 真・英文法大全(関正生, KADOKAWA)
- SKYWARD 総合英語(佐藤誠司, 桐原書店)
- ロイヤル英文法(綿貫陽, 旺文社)
- English Grammar in Use(Raymond Murphy, Cambridge University Press)