過去完了進行形とは|使い方・過去完了形や現在完了進行形との違いまで図解で詳しく解説
この記事では、過去完了進行形をテーマに、その意味や使い方、否定文・疑問文の作り方、「期間」や「起点」を尋ねる疑問文、他の文法(現在完了進行形/過去進行形/過去完了形)との違いなどについて、豊富な例文を用いて解説します。
過去完了進行形とは
過去完了進行形は、「過去完了形 + 進行形」という名前が示す通り、両者の特徴を持っています。
具体的には、過去完了形の「過去のある時点までの継続」と進行形の「進行中の動作」という特徴を併せ持つことで、「過去のある時点までの動作の継続」を表すことができます。
過去完了進行形のイメージを図解すると次のようになります。
なお、この図にある「大過去」とは、過去のある時点よりさらに以前の過去を意味する文法用語です。
(大過去の詳しい解説については、こちらの記事を参照してください。)
過去完了進行形は、<主語 + had been + 動詞のing形>という形をとり、日本語では「(過去のある時点まで)ずっと~し続けていた」という意味になります。(会話における had は、しばしば 'd のように省略されます。)
いくつか例文を見てみましょう。
(1) He had been watching TV for two hours when his mother came home.
母親が帰宅した時、彼はテレビを2時間見続けていた。
(2) I had been driving for half an hour before I found a gas station.
ガソリンスタンドを見つける前に私は30分運転し続けていた。
このように、過去完了進行形は、過去のある時点(「母親が帰宅した時」、「ガソリンスタンドを見つけた時」など)に視点を置き、その時まで動作が継続していたことを表します。
過去完了進行形の用法
上で紹介したように、過去完了進行形の主な用法は「過去のある時点まで継続していた動作を表す」というものですが、その他にも以下の2つの用法があります。
過去のある時点の直前まで継続中だった動作を表す
過去完了進行形は、過去のある時点の直前まで継続中だった動作を表すこともできます。
(3) He was very tired because he had been running for an hour.
彼は1時間ずっと走り続けたのでとても疲れていた。
この例では、「走る」という動作は終了していますが、彼がとても疲れていたことから、走っていたことの余韻は強く残っています。
このように、過去完了進行形は、継続していた動作が終了した直後にも使うことができます。
過去のある時点までの習慣を表す
過去完了進行形には、過去のある時点までの習慣を表す用法もあります。
(4) He had been calling her by her nickname until they graduated from high school.
高校を卒業するまで、彼は彼女のことをニックネームで呼んでいた。
この用法は、進行中の動作ではなく、過去のある時点までの動作の反復を表します。
過去完了進行形:否定文・疑問文の作り方
過去完了進行形を用いた肯定文を否定文にする場合は、had の後ろに not をつけます。なお、had not は hadn’t のように省略することができます。
(5) He had not [had’t] been feeling well for a week when I visited him.
私が訪れた時、彼は1週間ずっと気分がすぐれなかった。
過去完了進行形を用いた肯定文を疑問文にする場合は、had を主語の前に出します。
(6) Had he been doing well at work when you visited him?
あなたが訪れた時、彼の仕事はずっとうまくいっていましたか?
この疑問文に対する返答は、「Yes, he had.」「No, he hadn’t.」のようになります。
「期間」や「起点」を尋ねる疑問文
過去完了進行形で、ある行為が「どれくらい継続していたか」という「期間」を尋ねる場合は〈How long + had + 主語 + been + 動詞のing形 〜?〉という構文を使います。
(7) How long had John been watching TV when you got home?
あなたが家に着いた時、ジョンはテレビをどれくらい見続けていましたか?
一方、ある行為が「いつから継続していたか」という「起点」を尋ねる場合は〈Since when + had + 主語 + been + 動詞のing形 〜?〉という構文を使います。
(8) Since when had John been watching TV when you got home?
あなたが家に着いた時、ジョンはテレビをいつから見続けていましたか?
過去完了進行形と現在完了進行形の違い
ここからは、過去完了進行形と他の文法との違いについて見ていきます。
まずは現在完了進行形との違いについてです。
下の図のように、過去完了進行形は、現在完了進行形の時制をそのまま一つ過去にスライドさせたイメージになります。
例文で確認してみましょう。
過去完了進行形
(9) He had been watching TV for 2 hours when his mother came home.
母親が帰宅した時、彼はテレビを2時間見続けていた。
現在完了進行形
(10) He has been watching TV for 2 hours now.
彼は今までテレビを2時間見続けている。
このように、過去完了進行形は「大過去」(彼がテレビを見始めた時)から「過去」(母親が帰宅した時)までの動作の継続を表すのに対し、現在完了進行形は「過去」(母親が帰宅した時)から「現在」までの動作の継続を表します。
現在完了進行形の詳しい解説については、こちらの記事を参照してください。
過去完了進行形と過去進行形の違い
過去完了進行形は、下の図のように「動作が過去のある時点から別の時点まで継続していた」ことを表します。
一方、過去進行形は「過去のある時点で継続していた動作」を表します。
例文で確認してみましょう。
過去完了進行形
(11) He had been watching TV for 2 hours when his mother came home.
母親が帰宅した時、彼はテレビを2時間見続けていた。
過去進行形
(12) He was watching TV when his mother came home.
母親が帰宅した時、彼はテレビを見ていた。
このように、過去完了進行形は「大過去から過去まで」(彼がテレビを見始めた時から母親が帰宅した時まで)の時間の幅を表しますが、過去進行形は「過去のある1点」(母親が帰宅した時)にのみ着目します。
過去進行形の詳しい解説については、こちらの記事を参照してください。
過去完了進行形と過去完了形の継続用法の違い
上で紹介したように、過去完了進行形は「動作の継続」を表すので、動詞は「動作動詞」を使います。
一方、過去完了形の継続用法は「状態の継続」を表す用法なので、動詞は「状態動詞」を使います。
〇 I had been eating for one hour when he called me.
× I have eaten for one hour when he called me.
彼が私に電話をかけた時、私は1時間食べ続けていた。
このように「動作の継続」を表す場合は、過去完了形の継続用法ではなく、過去完了進行形を使います。
× We had been knowing each other for five years when we got married.
〇 We had known each other for five years when we got married.
私たちが結婚した時、知り合ってから5年が経っていた。
このように「状態の継続」を表す場合は、過去完了進行形ではなく、過去完了形の継続用法を使います。
過去完了形の継続用法の詳しい解説については、こちらの記事を参照してください。
また、動作動詞と状態動詞については、以下の記事を参照してください。
練習問題
最後に練習問題を解いてみましょう。
次の文を英訳しなさい。
(1) 彼は弟たちが帰宅するまで、3時間ずっと本を読んでいた。
(2) 彼らは朝までそのゲームをしていたのだろうか?
(3) 一日中歩き続けていたので、彼はとても疲れていたに違いない。
次の文を英訳しなさい。
(1) He had been reading a book for 3 hours until his brothers came home.
(2) Had they been playing the game until morning?
(3) He must have been very tired because he had been walking all day.
過去完了進行形との区別が必要な英文法はいくつもあります。多くの英文に触れて、ニュアンスの違いをしっかり掴みましょう。