現在完了進行形

現在完了進行形

先生

この記事では現在完了進行形について説明していきます。
まずは現在完了進行形の解説を読み理解して(Input)、そして例文を読んで和訳することで知識を定着させていきます(Output)。
このページをしっかり読めば、現在完了進行形がマスターできるはずです!

現在完了進行形とは

現在完了進行形は<過去のある時点から現在まである動作がずっと続いている>ことを表します。

時間軸でイメージするとわかりやすいです。

現在完了進行形とは

例えば、

(1) I have been reading the magazine.

という文。
現在完了進行形が使われています。
「私はずっとその雑誌を読んでいる。」という意味になっています。

つまり、現在までずっと「雑誌を読んでいる」動作が続いているということを表しているのです。

なるほど!
時間軸で考えるとわかりやすい!

生徒

現在完了進行形の表し方

そんな現在完了進行形ですが、have + been + 動詞のing形で表されます。

現在完了進行形の表し方

現在完了がhave + 過去分詞で。進行形がbe動詞 + 動詞のing形でしたがこれを合体させると、have + been + 動詞のing形となるわけです。

現在完了進行形ですが、haveがhasになる場合があります。
主語が三人称単数のときです。
ここに関しては、「持っている」を表す一般動詞のhaveと同様ですね。

なので例えば先ほどの(1)の例文の主語をHeに変えると、

(2) He has been reading the magazine.

となります。

先生

現在完了進行形の意味と表し方はわかったかな?
はい、わかりました!
現在完了進行形は「(ずっと)〜している」という意味で、have + been + 動詞のing形で表されるということですよね!

生徒

先生

そうそう!
ただ、思い出したんですが、have + 過去分詞の現在完了にも「(ずっと)〜している」の意味がありましたよね?

生徒

先生

お、よく覚えていたね。それはね・・・

現在完了進行形と現在完了形の違い

現在完了進行形は「(ずっと)〜している」という意味です。
しかし、現在完了形の<継続用法>も「(ずっと)〜している」という意味でしたよね。

シンプルに言うと、状態動詞を使うときは現在完了の<継続用法>を用いて、動作動詞を使うときは現在完了進行形を使います。

例文を見ていきましょう。

(3) She has known him for three years.
「彼女は3年間ずっと彼を知っている。」
=「彼女は彼と知り合って3年だ。」

knowは状態動詞です。
「彼女が彼のことを知っている」という状態が現在まで3年間続いているということですね。

(4) She has been talking with him for three hours.
「彼女は3時間ずっと彼と話している。」

一方でtalkは動作動詞です。
「彼女が彼と話している」という動作が現在ま3年間続いているということです。

なんとなくわかってきましたか?
次に、以下の2つの文を読み比べてください。

(5) She has studied English for three years.
(6) She has been studying English for three hours.

この違い、わかりますか?

(5)は「彼女が英語を勉強している」のが3年間続いていると言っています。
しかし、3年間ずっと勉強し続けているわけではないですよね。
その3年間の間には、寝る時間やご飯を食べる時間など、他のことをしている時間もあったはずです。
こういう時に現在完了の<継続用法>を使います。

一方で(6)の方は、彼女が英語を勉強している」のが3時間続いていると言っています。
きっとこれは、3時間ずっと勉強していたのでしょう。
このように、その動作を絶え間なくずっと続けている時に、現在完了進行形が使われます。

ちょっと発展!

状態動詞と動作動詞

状態動詞を使うときは現在完了の<継続用法>を用いて、動作動詞を使うときは現在完了進行形を用いるということを勉強してきました。
ここでは、その状態動詞と動作動詞に関して、ちょっと深掘りしていきましょう。

・状態動詞
状態動詞はすぐにやめられない動作を表します。
例えばknow「知っている」という動詞は状態動詞です。
<何かを知っている>ことは、すぐにやめられることではないですよね。
他にも、状態動詞は下記のようなものがあります。
have「持っている」 / like「好きだ」 / love「大好きだ」 / belong to…「〜に所属している」

・動作動詞
動作動詞は、すぐにやめられる動詞です。
study「勉強する」 / play「遊ぶ」 / write「書く」 / read「読む」
これらは全てやめようとおもえばすぐにやめられる動作ですよね。

状態動詞と動作動詞は、すぐにやめられるかどうかどうかで判断すると、わかりやすいですよ!

現在完了進行形の例文

現在完了進行形は理解できてきましたか?
それでは、知識を定着させるために、例文を読んでみましょう!

現在完了進行形の肯定文

現在完了進行形の肯定文の例文
(1) He has been reading the magazine.
[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

まず、現在完了進行形はhave + been + 動詞のing形ですよね。
今回はHeと、三人称単数が主語なので、haveはhasになります。
なので、has been readingで現在完了進行形だと気付きます。

そして、現在完了進行形は「(ずっと)〜している」と訳します。
なので、has been readingで「ずっと読んでいる」ですね。

(1) He has been reading the magazine.
「彼はずっと雑誌を読んでいる。」
[/su_expand]
現在完了進行形の肯定文の例文
(2) I have been studying English for three hours.
[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

さあ、次いきましょう。
今回は主語がIで三人称単数ではないので、haveになってますね。
have been studyingで現在完了進行形に気付き、「ずっと勉強している」と訳します。

最後についているfor…は「・・・間」と訳します。
for three hoursは「3時間」ですね。

[/su_expand]
現在完了進行形の肯定文の例文
(3) They have been playing tennis for over an hour.
[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

3つめです。

have been playingで現在完了進行形に気付きます。
なので、have been playing tennisで「ずっとテニスをしている」ですね。
for over an hourですが、「1時間以上」と訳します。
overは色々な意味がありますが、ここでは「〜以上」の意味で使われています。
over = more than = 「〜以上」です。

(3) They have been playing tennis for over an hour.
「彼らは1時間以上ずっとテニスをしている。」
[/su_expand]

現在完了進行形
(4) John has been eating lunch since twelve.

[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

今回はジョンが主語です。
ジョンは3人称単数なので、hasになってます。
has been eatingで現在完了進行形で「ずっと食べている」と訳します。

since twelveですが、「12時から」と訳します。
sinceは「〜から」です。

for…とsince…は完了形でよく出てくるので、覚えておきましょうね。

(4) John has been eating lunch since twelve.
「ジョンは12時からずっと昼食を食べている。」
[/su_expand]

現在完了進行形
(5) My dogs have been running since they arrived at the park.

[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

最後です。
まず、have been runningで現在完了進行形に気付き、「ずっと走っている」と訳します。

sinceですが、実は「前置詞」「接続詞」両方あります。
言い換えると、後ろに名詞もおけるし、主語+動詞も置けるということです。
例えば、
since this morning「今朝から」 (前置詞)
since it got dark「暗くなってから」 (接続詞)
は両方可能です。

arrive at…は「〜に到着する」と言う意味です。
arrive at… = get to… = reach… = 「到着する」です
3点セットで覚えておきましょう!

(5) My dogs have been running since they arrived at the park.
「私の犬たちは公園に着いてからずっと走っている。」
[/su_expand]

現在完了進行形の否定文

現在完了進行形
(1) I have not been studying since I graduated.

[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

まず、現在完了進行形の否定文は、haveとbeenの間にnotを入れる形で表されます。
なので、この例文では、I have not been studyingまで読んだところで、現在完了進行形の否定文だと気づきますね。
「ずっと勉強していなかった」ち訳します。

since…は「〜から」なので、since I graduatedで「私が卒業してから」となります。

(1) I have not been studying since I graduated.
「卒業してから私はずっと勉強していない。」
[/su_expand]

現在完了進行形
(2) She has not been waiting here for three hours.

[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

これも現在完了進行形の否定文だとすぐに気づきますね。
She has not been waitingまで読んだところでわかります。

for…は「〜間」なのでfor three hoursで「3時間」です。

(2) She has not been waiting here for three hours.
「彼女はここで3時間待っていない。」
[/su_expand]

現在完了進行形
(3) They have not been paying any attention.

[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

さあ、これはどうでしょう。
もちろん、現在完了進行形の否定文です。
They have not been payingまでで気づきますね。

そして、pay attention (to…)で「(〜に)気をつける」です。
日本語でも、「注意を払う」という言い回しをしますが、なのでpayです。
また、not anyで「全く〜ない」なので、ここでは「全く気をつけていない」となりますね。

(3) They have not been paying any attention at all.
「彼らはずっと、全然気をつけていない。」
[/su_expand]

現在完了進行形
(4) I have not been eating anything for the last few hours.

[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

さあ、これはどうでしょう。
現在完了進行形の否定文であることはもう大丈夫ですよね。

not…anythingは「何も〜ない」と訳します。
なので、I have not been eating anythingで「私はずっと何も食べてない」です。

for the last few hoursですが、まずlastはここでは「この」と訳します。
few hoursは「数時間」です。もちろん、few daysなら「数日」です。
なので、「この数時間」と訳します。

(4) I have not been eating anything for the last few hours.
「この数時間、私はずっと何も食べていない。」
[/su_expand]

現在完了進行形
(5) She has not been speaking for an age.

[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

さあ、現在完了進行形の否定文もこれで最後です。
She has not been speakingまでは大丈夫ですよね。
「彼女はずっと話していない」ですね。

for an ageですが、これは「長い間」です。
for a long timeの同意表現として覚えておきましょう!

(5) She has not been speaking for an age.
「彼女は長い間ずっと話していない。」
[/su_expand]

現在完了進行形の疑問文

現在完了進行形
(1) Have you been studying English for five hours?

[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

まず、現在完了進行形の疑問文ですが、haveを主語の前に持ってくることで表されます。
例えば、
肯定文: You have been sleeping.「君はずっと眠っていた。」
を疑問文にしたかったら、haveを主語の前に移動させて、
疑問文: Have you been sleeping?「君はずっと眠っていたの?」
となるわけです。

なので、この例文で言えば、Have you been studyingまで読んだところで現在完了進行形の疑問文に気づきますよね!
「君はずっと勉強していたの?」となるわけです。

for…はもちろん「〜間」なので、for five hoursで「5時間」です!

(1) Have you been studying English for five hours?
「君は5時間ずっと英語を勉強していたの?」
[/su_expand]

現在完了進行形
(2) Has she been working for over ten hours?

[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

これも現在完了進行形の疑問文ですよね。
Has she been workingまで読んだところで、気づけるはずです。
「彼女はずっと働いていたの?」です。

ちなみに、walkとworkの違いは大丈夫ですか?
walk(ウォーク): 「歩く」
work(ワーク): 「働く」
ですからね?
たまに間違えてる人を見かけるので、一応。笑

for over ten hoursのoverは「〜以上」です。なので「10時間以上」となります。
over… = more than…「〜以上」でセットで覚えましょう!

(2) Has she been working for over ten hours?
「彼女は10時間以上も働いているのですか?」
[/su_expand]

現在完了進行形
(3) Have you been reading newspaper lately?

[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

これはどうでしょう?
Have you been readingまで読めば、現在完了進行形の疑問文だと気づきますよね。

latelyですがこれは「最近」という意味です。
「最近」は、

  1. lately
  2. recently
  3. nowadays

あたりを覚えておくといいですが、完了形で使えるのは、latelyとrecentlyです。
nowadaysは現在形でしか使えません。now「今」がついてるくらいですからね。
いずれにしろ、すべて「最近」と訳せます。

(3) Have you been reading newspaper lately?
「君は最近新聞を読んでる?」
[/su_expand]

現在完了進行形
(4) What have you been doing for the last three hours?

[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

今回は疑問詞つきですが、難しくはないです。
have you been doingは現在完了進行形の疑問文で「君はしていたの?」ですよね。
それにWhatがついただけなので、「君は何をしていたの?」となるわけです。

for the last three hoursは上でもやりましたよね。
lastは「この」と訳せばいいので、「この3時間」です。

(4) What have you been doing for the last three hours?
「君はこの3時間、ずっとなにをしていたの?」
[/su_expand]

現在完了進行形
(5) How long have they been talking?

[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

さあ現在完了進行形も最後です!

How longはもちろん「どのくらい長く」ですよね。
これは完了形でよくでる表現です。

(5) How long have they been talking?
「彼らはどれくらい長くずっと話しているの?」
[/su_expand]

最後に

現在完了進行形は理解できましたか?

わからないところがあれば、しっかりこのページを読み返して、理解するようにしましょうね!