英語の「have + 過去分詞」と「have been + -ing」の違い
どちらも「今までずっと」を表します。現在完了は know や be のような状態が続くことを、現在完了進行形は動作が続いてきたこと(今もしている最中が多い)を表します。
使い分けの表
| have + 過去分詞 | have been + -ing | |
|---|---|---|
| 意味 | (ずっと)〜している(継続) | (ずっと)〜し続けている |
| 続くもの | 状態や事実 | 動作や活動 |
| 動詞の例 | know・be・like・have | wait・study・rain・work |
| 形 | have + 過去分詞 | have been + -ing |
例文で比べる
○ = 自然 △ = 通じるが、その場面・文体には合わない × = 不自然・誤り
○
My uncle has been a pilot for ten years.
おじは 10 年間パイロットをしています。
×
My uncle has been being a pilot for ten years.
おじは 10 年間パイロットをしています。
be は状態を表す動詞なので、進行形にしません。
△
I have waited for Lisa for an hour.
私はリサを 1 時間待っています。
○
I have been waiting for Lisa for an hour.
私はリサを 1 時間待ち続けています。
have waited でも言えますが、「今もまだ待っている」感じは have been waiting のほうがはっきり出ます。
○
I have written five emails this morning.
今朝、私はメールを 5 通書きました。
△
I have been writing five emails this morning.
今朝、私はメールを 5 通書き続けています。
終わった数や量を言うときは have written です。進行形は数より「ずっとしている」ことを言います。
覚え方・注意点
- know・like・want・be などの状態を表す動詞は、ふつう進行形にしません。
- How long ~? で「ずっと〜している」と聞くとき、動作の動詞は進行形がよく使われます。
- live・work・teach は、どちらの形でも意味がほとんど変わりません。
確認問題
( )に入れるのに、より自然なのはどちらでしょう。
問1
I ( ) my best friend since we were five years old.
- have been knowing
- have known
答えと解説
正解:2. have known
know は状態を表す動詞で進行形にしないので「have known」です。
問2
Tom's face is red and he is out of breath. He ( ) in the park.
- has run
- has been running
答えと解説
正解:2. has been running
今も息が切れている、続いていた動作の結果なので「has been running」です。
問3
I ( ) this bike for ten years, and it still works well.
- have had
- have been having
答えと解説
正解:1. have had
have(持つ)は状態を表す動詞なので「have had」です。
それぞれの文法の詳しい説明
- 現在完了(継続)の意味と使い方 (ずっと)〜している(継続)
- 現在完了進行形の意味と使い方 (ずっと)〜し続けている