【大人の学び直し英語】現在完了進行形 (have been ~ing) 実践ドリル
前回の記事「【大人の学び直し英語】時制(6) 現在完了進行形 (have been ~ing) の使い方」では、「(過去から)ずっと~し続けている」という動作の継続を表す have been ~ing の基本的な役割と使い方を学びました。
今回は、その大切な知識を「記憶に定着させる」ための実践ドリルです。簡単な解説のすぐ後にクイズを用意しました。「わかる」を「できる」に変えるために、ぜひチャレンジしてみてください!
1. 現在完了進行形の「基本の形」ドリル
まずは基本の確認です。現在完了進行形は「過去に始まった動作が、今も続いている」ことを表し、「動作の継続」に焦点が当たります。
- 基本の形:
have / has + been + 動詞のing形 - 相性が良い言葉:
for(~間)、since(~以来)、How long ...?(どれくらいの期間?)
このルールを思い出しながら、( ) に適切な語を入れて文を完成させましょう。
やってみよう!基本の形クイズ(10問)
- I ( ) ( ) waiting for the bus for 30 minutes. (私は30分間ずっとバスを待っています。)
答えを見る
have been
(主語が I なので have を使います。形は have + been + ~ing です。) - She ( ) ( ) studying Japanese since last year. (彼女は去年からずっと日本語を勉強し続けています。)
答えを見る
has been
(主語が She(三人称・単数)なので has を使います。) - How long ( ) you ( ) living in this city? (あなたはこの街にどれくらいの間住み続けているのですか?)
答えを見る
have / been
(疑問文なので have が主語 you の前に出ています。) - It has been ( ) (rain) all day. (一日中、雨が降り続いています。)
答えを見る
raining
(been の後は動詞の ing形 です。) - We ( ) been playing this game ( for / since ) three hours. (私たちは3時間ずっとこのゲームをしています。)
答えを見る
have / for
(主語が We なので have。「3時間」は「期間」なので for を使います。) - He has been teaching English ( for / since ) 2010. (彼は2010年からずっと英語を教えています。)
答えを見る
since
(「2010年」は動作が始まった「起点」なので since を使います。) - They ( ) ( ) traveling around the world. (彼らは世界中を旅し続けています。)
答えを見る
have been
(主語が They(複数)なので have を使います。) - He ( ) ( ) ( ) (not / sleep) well recently. (彼は最近、よく眠れていません。)
答えを見る
has not been sleeping
(否定文は has/have と been の間に not を置きます。hasn't been sleeping でもOKです。) - ( ) it ( ) snowing since last night? (昨夜からずっと雪が降っているのですか?)
答えを見る
Has / been
(疑問文なので Has が主語 it の前に出ています。) - My father ( ) ( ) watching TV for two hours. (父は2時間ずっとテレビを見ています。)
答えを見る
has been
(主語が My father(三人称・単数)なので has を使います。)
2.【最重要】現在完了形 vs 現在完了進行形ドリル
ここが最大の難関であり、最重要ポイントです。「状態動詞」か「動作動詞」かで使い分けるルールを思い出しましょう。
- 状態動詞 (know, like, have, believe, want...)
→ 進行形 (~ing) にできない。継続を表すときは現在完了形 (have + 過去分詞) を使う。 - 動作動詞 (study, wait, run, rain...)
→ 継続を表すときは現在完了進行形 (have been ~ing) を使うことが多い(臨場感が出る)。 - live, work など(どちらも使える動詞)
→ (have been ~ing) なら「動作の継続」を強調、(have + 過去分詞) なら「状態の継続」を淡々と述べる。
文脈や動詞の種類に注目して、( ) 内の正しい形を選びましょう。
やってみよう!使い分けクイズ(10問)
- I ( have known / have been knowing ) him for a long time. (私は彼を長年知っています。)
答えを見る
have known
(know (知っている) は「状態動詞」なので、進行形にできません。必ず現在完了形を使います。) - She ( has wanted / has been wanting ) this bag since last month. (彼女は先月からこのカバンをずっと欲しがっています。)
答えを見る
has wanted
(want (欲しい) も「状態動詞」です。進行形にはしません。) - He ( has studied / has been studying ) for five hours. (彼は5時間ずっと勉強し続けています。)
答えを見る
has been studying
(study (勉強する) は「動作動詞」です。「動作の継続」を強調するため、現在完了進行形が最適です。) - We ( have lived / have been living ) here since 2015. (私たちは2015年からここに住んでいます。)
答えを見る
どちらもOK
(live はどちらも使える動詞です。 have been living なら「住み続けている」という動作の継続を、have lived なら「住んでいる状態だ」という事実を強調します。どちらも文法的に正しいです。) - They ( have talked / have been talking ) on the phone for an hour. (彼らは1時間ずっと電話で話し続けています。)
答えを見る
have been talking
(talk (話す) は「動作動詞」です。「今も話し続けている」という臨場感を出すため、現在完了進行形が適しています。) - I ( have had / have been having ) this smartphone for three years. (私はこのスマホを3年間持っています。)
答えを見る
have had
(「所有している」という意味の have は「状態動詞」です。進行形にしません。) - How long ( have you waited / have you been waiting ) for me? (どれくらい私のことを待っているの?)
答えを見る
have you been waiting
(wait (待つ) は「動作動詞」です。「どれくらいの期間、待ち続けているの?」と「動作の継続期間」を尋ねる典型的な使い方です。) - I ( have always liked / have always been liking ) chocolate. (私は昔からずっとチョコレートが好きです。)
答えを見る
have always liked
(like (好きである) は「状態動詞」なので、進行形にできません。) - It ( has rained / has been raining ) hard since this morning. (今朝からずっと雨が激しく降り続いています。)
答えを見る
has been raining
(rain (雨が降る) は「動作動詞」です。「雨が降る」という動作が今も続いていることを強調するため、現在完了進行形が使われます。) - He ( has worked / has been working ) at that company for 10 years. (彼はあの会社で10年間働いています。)
答えを見る
どちらもOK
(work も live と同様、どちらも使える動詞です。has been working は「働き続けている」動作を、has worked は「働いている状態」を強調します。)
3. 応用(直前までの動作と結果)ドリル
最後は、もう一つの使い方「過去からついさっきまで続いていた動作と、その結果(今)」のドリルです。
- 動作は今終わったばかりかもしれないが、その「結果」が現在の状況に影響を与えていることを表します。
- 例:息が切れている(現在の結果) → なぜなら(さっきまで)走っていたから。
現在の状況(結果)をヒントに、( ) 内の動詞を使って「(さっきまで)~し続けていた」という文を完成させましょう。
やってみよう!応用クイズ(10問)
- A: Your clothes are all wet. (服がびしょ濡れだね。)
B: Yes, it ( ) ( ) ( ). (rain) (うん、ずっと雨が降っていたんだ。)答えを見る
has been raining
(「服が濡れている」という現在の結果から、「(さっきまで)雨が降っていた」と推測できます。) - I'm so tired. I ( ) ( ) ( ) all day. (work) (すごく疲れた。一日中ずっと働き通しだったんだ。)
答えを見る
have been working
(「今、疲れている」という結果は、「一日中働き続けていた」という直前までの動作が原因です。) - A: Your hands are dirty. What ( ) you ( ) ( )? (do)
B: I was in the garden. (手が汚れていますね。何をしていたのですか?)答えを見る
have / been doing
(「手が汚れている」という現在の結果から、直前まで継続していた動作を尋ねています。) - He is out of breath because he ( ) ( ) ( ). (run) (彼は(さっきまで)ずっと走っていたので、息が切れています。)
答えを見る
has been running
(「息が切れている」という現在の結果は、「走っていた」という直前までの動作が原因です。) - The kitchen smells good. ( ) you ( ) ( )? (bake) (キッチンがいい匂いがする。パンでも焼いていたの?)
答えを見る
Have / been baking
(「いい匂いがする」という現在の結果から、「(さっきまで)パンを焼いていた」動作を推測して尋ねています。) - I ( ) ( ) ( ) (look) for you. Where have you been? ((さっきまで)ずっと君を探していたんだよ。どこに行ってたの?)
答えを見る
have been looking
(「今、見つけた」という状況の直前まで、「探す」という動作が継続していたことを示します。) - My eyes are tired. I ( ) ( ) ( ) (read) a book for hours. (目が疲れた。(さっきまで)何時間も本を読んでいたんだ。)
答えを見る
have been reading
(「目が疲れている」という現在の結果は、「何時間も本を読んでいた」という直前までの動作が原因です。) - She ( ) ( ) ( ) (cry). Her eyes are red. (彼女は(さっきまで)泣いていたようだ。目が赤い。)
答えを見る
has been crying
(「目が赤い」という現在の結果から、「(さっきまで)泣いていた」という動作を推測しています。) - He ( ) ( ) ( ) (use) my computer without permission. (彼は(さっきまで)私のパソコンを無断で使っていた。)
答えを見る
has been using
((発見した)という現在の状況から、直前まで継続していた「使っていた」という動作を表します。) - The children are sleepy. They ( ) ( ) ( ) (play) outside all afternoon. (子供たちは眠そうだ。午後ずっと外で遊び続けていたからだ。)
答えを見る
have been playing
(「眠そう」という現在の結果は、「午後ずっと遊び続けていた」という直前までの動作が原因です。)
まとめ
お疲れ様でした!現在完了進行形のドリルはいかがでしたか?
特に重要なのは、「状態動詞 (know, like など)」は進行形にできず、現在完了形 (have known) を使うというルールです。この区別さえできれば、have been ~ing は「動作の継続」を表す便利な表現として使いこなせるようになります。
今回のドリルで間違えてしまった問題も、なぜそうなるのかを解説で確認し、例文ごと声に出して読んでみてください。そうすることで、知識がしっかりと記憶に定着していきます。
これからも「大人の学び直し英語」シリーズで、楽しく英語の基礎を固めていきましょう!