過去完了進行形

この記事では、過去完了進行形を解説しています。
まずは過去完了進行形を理解(Input)して、それが含まれる例文を和訳(Output)してもらいます。
最後には練習問題もついているので、知識が定着できたかの確認(Check)も可能です。
InputOutputCheckと進みます。
この記事をちゃんと読めば、過去完了進行形はマスターできるはずです!

過去完了進行形の意味

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

ちょっとイメージが湧きにくいですよね。
下記の画像を見てください。

過去完了進行形 イメージ

例えば、

私はさっきまでずっと英語を勉強していた。

という文。
これは過去完了進行形の文です。

過去完了進行形 イメージ 例文

なるほど!
時間軸でイメージするとわかりやすいですね!

生徒

先生

そうそう!
これからは、過去完了進行形の文を読むときは、このイメージを思い出すといいよ!

過去完了進行形の意味はイメージできるようになりましたか?
過去完了進行形を日本語として訳すときは「(ずっと)~していた」となります。

過去完了進行形の訳し方

過去完了進行形は「(ずっと)~していた」と訳す。

過去完了進行形の表し方

過去完了進行形の意味がわかったところで、英語ではどう表されるのかを見ていきましょう。

過去完了進行形はhad + been + 過去分詞で表されます。

過去完了進行形は過去完了(had + 過去分詞)と進行形(be動詞 + 動詞のing形)が組み合わさっているので、had + been + 過去分詞になるのです。

過去完了進行形 表し方

例えば、

私が彼を呼んだとき、彼はずっと寝ていた。

という文、英語ではどう表すでしょうか。

まず「私が彼を呼んだとき」という部分は大丈夫ですよね。
単純にwhen I called himでOKです。

そして「彼はずっと寝ていた」という部分。
ここは過去完了進行形ですよね。

まず「彼は」なのでHe。
「ずっと寝ていた」はhad been sleepingとなります。

なので、

He had been sleeping when I called him.
「私が彼を呼んだとき、彼はずっと寝ていた。」

となります。

過去完了進行形の表し方

過去完了進行形はhad + been + 過去分詞で表される

過去完了進行形と過去進行形の違い

過去完了進行形と過去進行形の違いについて、よく質問を受けます。
これも、最初の方で用いた時間軸を使うと、わかりやすくなります。

例えば、下記の2つの例文を比べてみましょう。

a. He had been sleeping when I called him.
b. He was sleeping when I called him.

aの方は過去完了進行形で、bの方は過去進行形ですね。
これを時間軸で表すと、このようになります。

過去完了進行形 過去進行形

過去進行形は単純に<私が彼を呼んだとき>に寝ていたということを表すのに対して、過去完了進行形の方は<私が彼を呼んだとき>以前からそのときまでずっと寝ていたことを表しているのです。

つまり、過去進行形は点なのに対して、過去完了進行形は線だというように理解するといいでしょう。

過去完了進行形は時間の幅を表しているということですか?

生徒

先生

その通り!
過去進行形は点で、過去完了進行形は線というようにイメージする。
「時間の幅」というのはいい考え方だね!
過去完了進行形と過去進行形の違い

過去進行形: その時点での動作の進行(点と考える)
過去完了進行形: その時点よりもっと前からの動作の継続(線と考える)

when? before? since?

過去完了進行形とよく一緒に出てくる語に、when, before, sinceがあります。
それぞれ、例文を見ながら勉強していきましょう。

when「時」

whenは過去完了進行形とよく一緒に使われます。

過去完了進行形は時間の幅を表しますが、whenはその終了点を示してくれます。

過去完了進行形 when

たとえば、

He had been playing tennis when I arrived at the park.
「私がその公園に着いたとき、彼はずっとテニスをしていた。」

という文。

<彼がテニスをしていた>時間の幅の終了点がwhen I arrived at the park(私がその公園に着いたとき)となるわけです。

過去完了進行形 when 例文

before「前」

beforeも過去完了進行形とよく使われます。

beforeもwhenと同様に、時間の幅の終了点を表します。

過去完了進行形 before

例えば、

He had been playing tennis before I arrived at the park.
「私がその公園に着く前、彼はずっとテニスをしていた。」

ニュアンスは少し違いますが、表している内容はwhenとほとんど同じです。

過去完了進行形 before 例文

since「から」

sinceは「〜から」を表します。
過去完了進行形でも使われます。

whenやbeforeとは逆に、sinceは時間の幅の起点を表します

過去完了進行形 since

例えば、

He had been playing tennis since I arrived at the park.
「私がその公園に着いてから、彼はずっとテニスをしていた。」

この例文の場合、<彼がテニスをしていた>時間の幅の起点がsince I arrived at the park(私がその公園に着いたとき)となっています。

過去完了進行形 since 例文

過去完了進行形の例文

肯定文

まずは肯定文から始めていきましょう。
ここで過去完了進行形の基礎を固めます。

過去完了進行形<肯定文>の例文
(1) She had been walking for three hours when I called her.
[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

まず、過去完了進行形の表し方ですが、had + been + 動詞のing形で表されます。
訳は「ずっと〜していた」ですね。
この例文で言えば、had been walkingの部分がそうです!

なので、She had been walkingまで読んだところで、過去完了進行形に気づいてほしいです。
「彼女はずっと勉強していた」と訳します。

for three hoursは「3時間」。
for…は「〜間」と訳します。
完了形でよく出てくる表現ですね。

when…は「〜とき」なので、 when I called herは「私が彼女に電話したとき」ですね。

(1) She had been walking for three hours when I called her.
「私が彼女に電話したとき、彼女は3時間ずっと勉強していた。」
[/su_expand]
完了形でよく使われるfor

for: 「〜間」
for two hours: 2時間
for five years: 5年間
for a long time: 長い間

過去完了進行形<肯定文>の例文
(2) I had been sleeping for more than ten hours when my mother woke me up.
[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

さあ、これはどうでしょうか?
訳せましたか?

まず、I had been sleepingまで読んだところで、過去完了進行形に気づきます。
「私はずっと寝ていた」となりますよね。

for more than ten yearsですが、
まずmore than…は「〜以上」です。
more than… = over… =「〜以上」はぜひセットで覚えておきましょう。

なので、for more than ten yearsは「10年以上」ですね。

あとはwhen my mother woke me upですが、これは「私の母が私を起こしたとき」となります。
wake upは「起きる」ですが、wake … upで「〜を起こす」という意味になるんです。
なので、woke me upで「私を起こした」ですね。

(2) I had been sleeping for more than ten hours when my mother woke me up.
「私の母が私を起こしたとき、私は10時間以上もずっと寝ていた。」
[/su_expand]
過去完了進行形<肯定文>の例文
(3) He had been working at the company before he left Japan.
[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

He had been workingまで読み進めれば、過去完了進行形に気づきますよね。
「彼はずっと働いていた」ですね。

before…はもちろん「〜まえ」ですから、
before he left Japanで「彼が日本を去る前」となります。

(3) He had been working at the company before he left Japan.
「彼は日本を去るまでずっとその会社で働いていた。」
[/su_expand]
過去完了進行形<肯定文>の例文
(4) I was very tired because I had been playing tennis for an hour.
[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

この文では、because以下に過去完了進行形が使われていますね。
I had been playing…の部分です。
「私はずっとしていた」ですよね

for an hourはもちろん「1時間」。
hourはスペルを見ると母音から始まっていませんが、発音で考えると母音から始まっているので、aではなくanがつきます。

(4) I was very tired because I had been playing tennis for an hour.
「私は1時間ずっとテニスをしていたので、とても疲れていた。」
[/su_expand]
過去完了進行形<肯定文>の例文
(5) They had been waiting for three hours to meet their boss.
[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

過去完了進行形の肯定文もこれで最後ですね!

まず、They had been waitingまで読んだところで、過去完了進行形に気づきますね。
「彼らはずっと待っていた」です。

最後のto meet their bossは「彼らの上司に会うために」です。
不定詞の副詞的用法ですね。

(5) They had been waiting for three hours to meet their boss.
「上司に会うために、彼らは3時間もずっと待っていた。」
[/su_expand]

否定文

次は否定文の例文を読んでいきましょう。
まずは自力で例文を日本語に訳してみてください。

そのあとで解説を読んで理解していきましょう!

過去完了進行形<否定文>の例文
(1) Mike had not been playing tennis since last week.
[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

まず過去完了進行形の否定文ですが、hadとbeenの間にnotを入れるだけです!
例えば、
I had been watching TV.「私はずっとテレビを見ていた。」を否定文にするときは、
I had not been watching TV.「私はずっとテレビを見ていなかった。」となるわけです。

この例文でも、
Mike had not been playingまで読んだところで、過去完了進行形の否定文に気づきますよね。
「マイクはずっとしていなかった」となります。

since…は「〜から」です。
なのでsince last weekは「先週から」となりますね。

[/su_expand]
過去完了進行形の否定文

had + not + been + 過去分詞
hod not = hadn’t

過去完了進行形<否定文>の例文
(2) I had not been talking with her for a long time.
[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

I had not been talkingまで読み進めれば、過去完了進行形に気づきますね。
「私はずっと話していなかった」となります。

talk with…は「〜と話す」です。
talk to..「〜に話しかける」とセットで覚えましょう。

for a long timeはよく出てくる表現で「長い間」と訳します。

(2) I had not been talking with her for a long time.
「私は長い間彼女と話しをしていなかった。」
[/su_expand]
過去完了進行形<否定文>の例文
(3) The teacher got angry because his students had not been studying..
[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

この例文では、because以下が過去完了進行形の否定文になっていますね。
his students had not been studyingの部分です。
「彼の生徒がずっと勉強していなかった」となります。

(3) The teacher got angry because his students had not been studying.
「その先生は、彼の生徒が勉強していなかったので、怒った。」
[/su_expand]
過去完了進行形<否定文>の例文
(4) We had not been waiting for a long time when you arrived here.
[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

これも過去完了進行形の否定文です。
We had not been waitingまででわかります。

for a long timeはもちろん「長い間」。
さっきもやりましたよね。

when you arrived hereは「あなたがここに着いたとき」。
「到着する」は下記の3点セットで覚えましょう。

  • arrive at…
  • get to…
  • reach…

ちなみにhereは副詞で、直前に前置詞を取らないので、arrive at hereとはならずに、arrive hereとなります。

(4) We had not been waiting for a long time when you arrived here.
「君がここに着いたとき、僕たちは長い間待っていなかったよ。」
[/su_expand]
過去完了進行形<否定文>の例文
(5) She had not been drinking anything since she came here.
[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

さあ、過去完了進行形の否定文もこれで最後の例文です。
しっかり自力で訳せるようになってますか??

She had not been drinkingの部分が過去完了進行形の否定文ですね。
「彼女はずっと飲んでいなかった」です。

そのあとでanythinっがきていますが、これはnotの後にあると「何も〜ない」と訳します。
なのでShe had not been drinking anythingまでで「彼女はずっと何も飲んでいなかった」となります。

since she came hereはもちろん「彼女がここにきてから」です。
「〜に来る」はcome to…ですが、さっきもやったようにhereは副詞で、直前に前置詞を取らないなのでcame hereになるんです。

(5) She had not been drinking anything since she came here.
「彼女はここに来るまで何も飲んでいなかった。」
[/su_expand]

疑問文

お次は疑問文です!
今度も5つの英文を読んで、過去完了進行形の疑問文をマスターしていきましょう!

過去完了進行形<疑問文>の例文
(1) Had you been sleeping for more than ten hours?
[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

まず、過去完了進行形の疑問文は、hadを主語の前に持ってくることで、表されます。
例えば、
You had been watching TV.「あなたはずっとテレビを見ていた。」を疑問文にするときは、
Had you been watching TV?「あなたはずっとテレビを見ていたの?」となります。

この例文では、Had you been sleepingの部分を読めば、過去完了進行形の疑問文だと気づきますね。
「あなたはずっと眠っていたの」です。

for more than ten hoursは大丈夫ですよね。
「10時間以上」です。

(1) Had you been sleeping for more than ten hours?
「君は10時間以上もずっと寝ていたの?」
[/su_expand]
過去完了進行形の疑問文

Had + 主語 + been + 過去分詞…?
→ Yes, 主語 had. / No, 主語 had not.

過去完了進行形<疑問文>の例文
(2) Had they been taking classes since this morning?
[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

これも、過去完了進行形の疑問文ですよね。
Had they been takingまで読み進めたところで、分かります。
「彼らはずっととっていたの」ですね。

since…は「〜から」なので、since this morningで「今朝から」になります。

(2) Had they been taking classes since this morning?
「今朝からずっと、彼らは授業を取っているの?」
[/su_expand]
過去完了進行形<疑問文>の例文
(3) Had she been teaching English before she left her country?
[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

さあ、これはどうですか?
ちゃんと訳せましたか?

まず、Had she been teachingまでで過去完了進行形の疑問文だと気付きます。
「彼女はずっと教えていたの?」ですね。

before she left her countryも大丈夫ですよね。
beforeは「〜前」
left…は「〜を去る」なので、
「彼女が自分の国を去った前」ですね。

(3) Had she been teaching English before she left her country?
「自分の国を去るまで、彼女はずっと英語を教えていたのですか。」
[/su_expand]
過去完了進行形<疑問文>の例文
(4) How long had you been waiting there to take the train?
[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

最初にHow longと疑問詞が来ていますが、それ以外は今までと同じ方法で訳せます。

まず、had you been waitingの部分を読んだところで、過去完了進行形の疑問文だと気付きますよね。
「あなたはずっと待っていたのですか」です。
それにHow long「どのくらい長く」がついているので、How long had you been waitingで「あなたはどのくらい長く待っていたのですか?」となるわけです。

to take the trainは「その電車に乗るために」です。
さっきもやった、不定詞の副詞的用法ですね。

ちなみに、「電車に乗る」は以下の3つを押さえておきましょう。

  • get on a train
  • take a train
  • ride a train

それぞれ微妙なニュアンスの違いはありますが、それはここでは割愛します。

(4) How long had you been waiting there to take the train?
「その電車に乗るために、君はどのくらい長くそこで待っていたの?」
[/su_expand]
過去完了進行形<疑問文>の例文
(5) Why had she been studying so long? To get into Harvard.
[su_expand more_text=”解説・解答を表示” less_text=”解説・解答を閉じる” height=”0″ class=”kakudai”]

今回も疑問詞付きの過去完了進行形です。
訳せましたか?

had she been studyingまでで過去完了進行形の疑問文に気付きますよね。
「彼女はずっと勉強していたの?」です。
それにWhyがついているので、「なぜ彼女はずっと勉強していたの?」となります。

so longは「そんなに長く」です。

to get into Harvardは「ハーバード大学に入るために」ですね。

(5) Why had she been studying so long? To get into Harvard.
「彼女はなぜそんなに長く勉強していたの? ハーバードに行くためだよ。」
[/su_expand]

練習問題で過去完了進行形をマスター!

過去完了進行形はマスターできましたか?
ちゃんと理解できているかを確認するために、練習問題を解いてみましょう!