解説記事 — フレーズフレーズミー
動詞の形(時制)過去完了進行形 had been doing とは?——「〜し続けていた」の作り方と現在完了進行形との違い
30秒でわかる
過去のある時点(「列車が到着した時」など)まで続いていた動作は、had been doing(過去完了進行形)で表します。基準が「今」なら have been doing、基準が「過去のある時点」なら had been doing——ここが分かれ目です。
まず、実際の間違いを見てください
次の3つは、当サービスの人手添削で実際に指摘された誤答です(回数は同じ間違いが添削された実測値)。
例文: 列車が到着した時、私達は30分近く待ち続けていた。
「待ち続けていた」は過去完了進行形 had been 〜ing で表します。また wait は自動詞なので wait for 〜(〜を待つ)と前置詞 for が必要です。
例文: 列車が到着した時、私達は30分近く待ち続けていた。
「列車が到着した時」という過去のある時点が基準なので、have でなく had。現在完了進行形は「今」までの継続にしか使えません。
例文: 列車が到着した時、私達は30分近く待ち続けていた。
be kept waiting は「待たされる」という意味になってしまいます。単に「待ち続けていた」なら過去完了進行形だけで十分です。
過去完了進行形のミスは、よくある誤り全222タイプの中で第169位。当サービスの人手添削12年分で119回指摘されました。誤答は「have と had の取り違え」と「形の組み立てミス」に集中しています。
過去完了進行形の考え方
過去完了進行形は、been doing の「何かをしていた状態」を、過去のある時点に had する(持った)ことで、何かをし続けた状態を過去のある時点と結びつけて述べる方法です。つまり、(大)過去のあるときから過去のある時点までずっと続いてきた動作や出来事を表します。
She had been waiting for three hours when you came.(あなたが来るまで、彼女は3時間待ち続けていました)<button class="speak" data-text="She had been waiting for three hours when you came.">♪</button>
「し続けた状態」を過去のある時点に「持っている」だけなので、その時点でも継続しているかどうかは形からは決まりません。その後も続くことを暗示する場合もあれば、そこで終了したことを表す場合もあります。
過去完了形がある行為の結果を伝える表現であるのに対し、過去完了進行形はある行為自体(〜し続けていたこと)を伝える表現です。また、基準が「今」である現在完了進行形(have been doing)とは、基準時点だけが違います。
使い分け表
| 形 | 基準の時点 | 伝えること |
|---|---|---|
| had been doing(過去完了進行形) | 過去のある時点 | その時点まで動作が続いていたこと |
| have been doing(現在完了進行形) | 今 | 今まで動作が続いていること |
| had done(過去完了形) | 過去のある時点 | その時点までの行為の結果 |
「for thirty minutes(30分間)」のような継続の長さを表す語句が付いて、基準が過去のある時点のとき——それが過去完了進行形の出番です。
まとめ——書いたあとのチェック
- 「〜した時、…し続けていた」の基準は過去——have でなく had になっているか
- 形は had + been + 〜ing の3点セットで組めているか
- wait は wait for 〜——前置詞の抜けにも注意
データについて: 本文の回数・割合は、フレーズフレーズミーの人手添削データ12年分の集計値です(添削と誤りタグの照合 655,994回のうち、本記事のテーマ「過去完了進行形」への照合が 119回・0.02%。集計 2026-08-14)。誤答例の「◯回」は、同じ間違いが人手添削と照合された回数です。誤答例はいずれも実際の学習者の答案に現れた文で、個人が特定できる情報は含みません。