英語学習法 Tips
学びになった 0 保存 0

【英検2級 英文法】「過去完了進行形」をやさしく解説|had been+動詞のing形、現在完了進行形・過去進行形・過去完了形との違い、for・sinceの使い方から疑問文・否定文、練習問題と解説まで

【英検2級 英文法】「過去完了進行形」をやさしく解説|had been+動詞のing形、現在完了進行形・過去進行形・過去完了形との違い、for・sinceの使い方から疑問文・否定文、練習問題と解説まで

「母が帰宅したとき、私は2時間ずっと英語を勉強していました」

この文を、英語で言えますか?

I had been studying English for two hours when my mother came home.
「母が帰宅したとき、私は2時間ずっと英語を勉強していました」

had been studyingという形を見て、「過去形なのか、完了形なのか、進行形なのか」と戸惑う方もいるかもしれません。

これは「過去完了進行形」です。

例えば、昨日の午後7時に勉強を始め、午後9時にお母さんが帰ってきたとします。帰宅した時点で、勉強はすでに2時間続いていました。

このように、「過去のある時点まで、ずっと〜していた」という動作を表すのが、過去完了進行形の基本的な使い方です。

なお、お母さんが帰宅したところで、勉強をやめたという意味ではありません。その後も続けていた可能性があります。

大切なのは、「過去のいつを基準に、その前からの動作を振り返っているか」を捉えることです。現在完了進行形や過去進行形との違いも、短い例文で確認していきましょう。

こんにちは。英語講師のTaka先生・根岸貴規です。私は日本国内で教科書の音読を中心に英語を身につけ、その英語を使って外資系投資銀行で約20年間働いてきました。英検1級・TOEIC980点を取得し、これまで累計14,000人以上の方に英語学習を指導してきました。ストアカでは、2022年から2025年まで4年連続で「最多受講者賞」を、2025年には「ストアカン・オブ・ザ・イヤー」をいただきました。

目次

■ 基本の形|「had been+ingは、どう組み立てるの?」

過去完了進行形の基本は、次の形です。

主語+had+been+動詞のing形

現在完了進行形では、主語に合わせてhaveとhasを使い分けます。過去完了進行形では、主語がIでも、sheでも、theyでもhadを使います。

She had been practicing the piano for an hour when I arrived.
「私が到着したとき、彼女は1時間ずっとピアノを練習していました」

文を分けてみましょう。

She:彼女は
had been practicing:ずっと練習していた
the piano:ピアノを
for an hour:1時間
when I arrived:私が到着したとき

ここでのhadは、「持っていた」という意味ではありません。過去完了を作るための助動詞です。

過去完了形は「had+過去分詞」、進行形は「be動詞+動詞のing形」です。この二つが組み合わさるため、be動詞が過去分詞のbeenになり、その後ろにpracticingなどのing形が続きます。

間違えやすいのは、次の二つです。

× She had practicing ...
○ She had been practicing ...

一つ目は、hadとpracticingの間にbeenが抜けています。

× She had been practice ...
○ She had been practicing ...

こちらは、practiceが原形のままです。過去完了進行形では、practicingにします。

最初はhad been practicing、had been studyingのように、三つの語をまとまりで声に出して覚えてください。

■ 現在完了進行形との違い|「今までなのか、そのときまでなのか?」

現在完了進行形と過去完了進行形は、どちらも続いてきた動作を表せます。違うのは、基準になる時点です。

① 今を基準にする

I have been studying English for two hours.
「私は2時間ずっと英語を勉強しています」

今までの2時間について話しています。例えば、午後9時に勉強しながらこの文を言うなら、午後7時ごろから勉強している場面です。

② 過去のある時点を基準にする

I had been studying English for two hours when my mother came home.
「母が帰宅したとき、私は2時間ずっと英語を勉強していました」

こちらは、「母が帰宅したとき」までの2時間について話しています。昨日の出来事を、今日説明している場合にも使えます。

この文から、今も勉強しているかどうかは分かりません。

現在完了進行形は「今まで」、過去完了進行形は「そのときまで」。まずは、この違いを押さえましょう。

have been+ingの形から確認したい方は、「現在完了進行形」をやさしく解説した記事も参考にしてください。今を基準にする使い方が分かると、過去完了進行形との関係もつかみやすくなります。

■ 過去進行形との違い|「was studyingでも、勉強していたと言えるのでは?」

はい。過去進行形でも、「勉強していました」と言えます。

ただし、次の二文では、伝えていることが違います。

① 過去進行形

I was studying when my mother came home.
「母が帰宅したとき、私は勉強していました」

お母さんが帰宅した時点で、何をしていたかを伝えています。この文だけでは、何分前、何時間前から勉強していたのかは分かりません。

② 過去完了進行形

I had been studying for two hours when my mother came home.
「母が帰宅したとき、私は2時間ずっと勉強していました」

お母さんが帰宅する前から勉強を始め、その時点まで2時間続けていたことを伝えています。

「そのとき勉強していた」のか。
「そのときまで、すでに2時間勉強していた」のか。

日本語では、どちらも「勉強していた」と訳せます。訳だけで区別しようとせず、いつからの動作を説明しているのか、場面を思い浮かべてみてください。

■ forとsince|「どれくらいの間、いつから続いていたの?」

過去完了進行形でも、期間や始まった時点を表すためにforとsinceを使います。

① for+期間

We had been waiting for twenty minutes when the bus arrived.
「バスが到着したとき、私たちは20分間ずっと待っていました」

for twenty minutesは「20分間」です。バスが到着した時点まで、待つという動作が20分間続いていました。

ほかにも、次のように使えます。

for an hour:1時間
for three days:3日間
for several weeks:数週間

② since+始まった時点

The bus arrived at eight thirty. We had been waiting since eight o’clock.
「バスは8時半に到着しました。私たちは8時からずっと待っていました」

since eight o’clockは「8時から」です。待ち始めた時点を示しています。

since Monday:月曜日から
since April:4月から
since seven o’clock:7時から

「どれくらいの間?」に答えるならfor、「いつから?」に答えるならsinceを選びます。

「2時間」ならfor two hoursです。since two hoursとはしません。

また、バスの例文では、最初の文が「8時半にバスが到着した」という過去の時点を示しています。そのため、次の文でwhen the bus arrivedを繰り返す必要はありません。

過去完了進行形の文には、必ずwhenが入るわけではないのです。基準になる時点は、前の文や会話の流れから分かる場合もあります。

■ 疑問文と否定文|「どのくらい待っていたのか、聞いてみよう」

① 疑問文はhadを主語の前へ

Had you been waiting for an hour when the bus arrived?
「バスが到着したとき、あなたは1時間ずっと待っていたのですか?」

肯定文では主語の後ろにあったhadを、主語の前に出します。

Had+主語+been+動詞のing形?

答えるときは、次の形です。

Yes, I had.
「はい、そうです」

No, I had not.
「いいえ、違います」

過去の話だからといって、疑問文にdidを加える必要はありません。過去完了進行形では、hadを主語の前に出します。

② 「どのくらいの間?」はHow long

How long had you been waiting when the bus arrived?
「バスが到着したとき、あなたはどのくらいの間、待っていたのですか?」

I had been waiting for twenty minutes.
「20分間待っていました」

語順は、次のとおりです。

How long+had+主語+been+動詞のing形?

直接相手に質問するときは、How long you had been ...としないように気をつけてください。

③ 否定文はhadの後ろにnot

I was tired because I had not been sleeping well.
「よく眠れていなかったので、私は疲れていました」

had not been sleeping wellで、「よく眠れていなかった」と表しています。眠りのよくない日が続いていたことが、当時の疲れにつながっています。

had notの短縮形はhadn’tです。まずは省略しない形で、notの位置を確認しましょう。

■ 過去完了形との違い|「終わっていたことと、続けていた時間」

今度は、宿題をしている場面で比べてみましょう。

① 宿題が終わっていたことを伝える

I had finished my homework when my friend called.
「友達から電話があったとき、私は宿題を終えていました」

had finishedで、電話がかかってくる前に宿題が終わっていたことを伝えています。

② 宿題を続けていた時間を伝える

I had been doing my homework for an hour when my friend called.
「友達から電話があったとき、私は1時間ずっと宿題をしていました」

こちらは、宿題をするという動作が、その時点まで1時間続いていたことに注目しています。この文だけでは、宿題を終えたとは言っていません。

動作の完了や結果を伝えるときには、過去完了形がよく使われます。一方、過去完了進行形では、続いていた動作そのものや、その時間に焦点が当たります。

ただし、「過去完了形は必ず終わったこと」と覚えないようにしてください。過去完了形でも、状態の継続を表せます。

■ 状態を表す動詞|「ずっと知っていた、も進行形にするの?」

knowは「知っている」という状態を表す動詞です。通常は進行形にしません。

I had known him for three years when we started working together.
「一緒に働き始めた時点で、彼を知ってからすでに3年がたっていました」

彼と知り合ったのが先で、その3年後に一緒に働き始めた、という順序です。

「知っている」という状態が続いていたことを表すので、had been knowingではなく、過去完了形のhad knownを使います。knownはknowの過去分詞です。

× I had been knowing him ...
○ I had known him ...

この文は、一緒に働き始めたところで「知っている」という状態が終わった、という意味ではありません。

日本語に「ずっと」があるかどうかだけで、動詞の形を決めないようにしましょう。studyやwaitのような動作なのか、knowのような状態なのかも確認してください。

■ 意味をもう一歩|「その時点では、すでに動作が終わっていることもあるの?」

過去完了進行形は、ある過去の時点より前まで続いていた動作が、そのときの状況に影響している場合にも使えます。

The ground was wet because it had been raining.
「雨が降っていたので、地面がぬれていました」

地面を見たときには、雨がやんでいた可能性もあります。それでも、その前まで降っていた雨が、地面のぬれている理由になっています。

冒頭の勉強の例では、お母さんが帰宅した後も勉強を続けていた可能性がありました。一方、この雨の例では、地面を見たときには雨がやんでいる場合もあります。

過去完了進行形という形だけで、動作がいつ終わったかまでは決められません。

長文でhad been+ingを見つけたら、まず「何を続けていたのか」を確認し、次に「どの過去の出来事や状況につながっているのか」を前後の文から読み取ってください。

■ 確認問題|「形だけでなく、意味も分かりますか?」

次の6問に取り組んでみましょう。例文と問題は、この記事の学習用に作成したものです。

① 過去完了進行形になるように、空所に一語入れてください。

She had( )practicing the piano for thirty minutes when I arrived.
「私が到着したとき、彼女は30分間ずっとピアノを練習していました」

② 正しい形を選んでください。

I had been(study/studying)for two hours when my brother came home.
「兄が帰宅したとき、私は2時間ずっと勉強していました」

③ 正しい語を選んでください。

It was noon. They had been working(for/since)nine o’clock.
「正午でした。彼らは9時からずっと働いていました」

④ 次の語句を並べ替えてください。文頭を大文字にし、文末に疑問符をつけてください。

(you/been/how long/had/waiting)when the train arrived
「電車が到着したとき、あなたはどのくらいの間、待っていたのですか?」

⑤ 次の文の動詞の形を直してください。

I had been knowing her for two years when we became classmates.
「同じクラスになった時点で、彼女を知ってからすでに2年がたっていました」

⑥ 次の二文のうち、電話が来る前から勉強を続けていた時間まで伝えているのは、どちらですか?

A. I was studying when my friend called.
「友達から電話があったとき、私は勉強していました」

B. I had been studying for an hour when my friend called.
「友達から電話があったとき、私は1時間ずっと勉強していました」

■ 解答と解説|「なぜ、その答えになるのかを確認しよう」

① been

She had been practicing the piano for thirty minutes when I arrived.
「私が到着したとき、彼女は30分間ずっとピアノを練習していました」

過去完了進行形は「had+been+動詞のing形」です。hadとpracticingの間にbeenを入れます。

主語がSheでも、過去完了進行形ではhadを使います。

② studying

I had been studying for two hours when my brother came home.
「兄が帰宅したとき、私は2時間ずっと勉強していました」

過去完了進行形では、beenの後ろに動詞のing形を置きます。

studyのing形はstudyingです。studiesと違い、yをiに変える必要はありません。

③ since

It was noon. They had been working since nine o’clock.
「正午でした。彼らは9時からずっと働いていました」

nine o’clockは、働き始めた時点なのでsinceを使います。

正午まで3時間続いていたことを、期間で伝えるならfor three hoursとなります。

④ 並べ替えの答え

How long had you been waiting when the train arrived?
「電車が到着したとき、あなたはどのくらいの間、待っていたのですか?」

How longの後ろを、had+you+been+waitingの順に並べます。

電車が到着した時点までの、待っていた時間を尋ねています。

⑤ had been knowing → had known

I had known her for two years when we became classmates.
「同じクラスになった時点で、彼女を知ってからすでに2年がたっていました」

knowは「知っている」という状態を表しているため、通常は進行形にしません。過去完了形のhad knownを使います。

⑥ B

Aは、電話があった時点でしていたことを伝えています。

Bは、その時点より前から勉強していて、すでに1時間続けていたことまで伝えています。

答え合わせが終わったら、間違えた問題について「beenが抜けていた」「始まった時点なのでsinceを使う」など、理由を一言で説明してみてください。説明できないところがあれば、その箇所に戻って確認しましょう。

■ 今日の練習|「昨日の出来事を、一文で説明してみよう」

私は、文法を理解した後に、例文を繰り返し音読し、自分で思い出して使う練習を大切にしています。

今日は、次の一文で取り組んでみましょう。

I had been reading for thirty minutes when my friend called.
「友達から電話があったとき、私は30分間ずっと読書をしていました」

① 出来事の順序を確認する

先に読書を始め、その30分後に友達から電話がかかってきました。

had been readingは、その電話があった時点まで続いていた動作です。

② 場面を思い浮かべて音読する

本を読んでいるところに電話がかかってきた場面を想像しながら、声に出してください。

had been readingを一つのまとまりとして捉え、その後ろのfor thirty minutesで、続いていた時間を確認します。

③ 英文を隠して、言う・書く

日本語だけを見て、英語で言ってみましょう。

beenが抜けたり、hadではなくhaveが出たりしたら、その部分を確認してもう一度。言えるようになったら、何も見ずに書いてみます。

④ 自分の出来事に変える

読書を勉強や楽器の練習に変えても構いません。英語にする前に、次の三つを決めてください。

・過去のどの時点について話すのか
・その前から何をしていたのか
・どれくらい続けていたのか

例えば、夕食の時間になったとき、すでに1時間ピアノを練習していたなら、こう言えます。

I had been practicing the piano for an hour when it was time for dinner.
「夕食の時間になったとき、私は1時間ずっとピアノを練習していました」

文法の名前は長くても、伝えたいのは身近な出来事です。

「そのときまで、何を続けていたのか」

今日は、この問いに答える一文を作ってみてください。そして明日、その英文を何も見ずに言えるか確かめましょう。

説明を読んで分かった形を、自分でも思い出して使えるようにする。そこまで練習することで、読んだときの理解も、自分で書くときの使い方も、少しずつ確かなものになっていきます。

■ 参考資料

・Oxford Learner’s Dictionaries:過去完了進行形の形と使い方

・Oxford Learner’s Dictionaries:過去完了形と過去完了進行形の違い

・British Council:過去完了形・過去完了進行形の解説

根岸貴規

1人でも多くの英語学習者のお役に立てるような情報を発信しています。英語をもっと頑張りたい方、頑張っているのになかなか続かない方は、ぜひ他の投稿も参考にしてみてください。

この記事を読んだ方におすすめ

この記事を書いた先生の講座・サービスです。先生から直接学べます。

この記事を書いた先生
Taka先生 根岸貴規 Proバッジ
ストアカ日本一の実績を持つ英検専門オンライン講師
フォロワー 0 記事 113 受講者 12,735

英語を勉強しているのに、「何から始めればよいのか分からない」「頑張っているのに成果が見えない」と悩んでいませんか。 英語学習で大切なのは、根性や才能ではなく、「正しい順序」「正しい方法」「必要な学習量」です。自分に必要な学習を見極め、忙しくても続けられる仕組みをつくることが…

Taka先生 根岸貴規