モチタン辞典 › 読みもの › 英文法 › 過去完了・進行形の違い

過去完了と過去進行形の違いと使い分け
過去完了形(had done)と過去進行形(was doing)の決定的な違いは、「すでに終わった過去の事象」か「その瞬間にまさに起きていた動作」かという点です。
日本語訳はいずれも「〜していた」となりやすいため混同されがちですが、過去完了形は過去の基準時より前の完了・経験を、過去進行形は過去のある一瞬を切り取った動作の最中を表します。
過去完了・過去進行形・過去完了進行形の比較表
英語の過去の時制でつまずきやすいのが、過去進行形(was/were doing)、過去完了形(had done)、そして過去完了進行形(had been doing)の3つの使い分けです。
日本語ではどれも「〜していた」と訳せてしまう場面が多いため、それぞれの文法形式と焦点の当て方の違いを整理しておく必要があります。
まずは3つの時制の基本形、核となる意味、時間軸上の捉え方をまとめた比較表を確認しましょう。
表は横にスクロールできます →
| 時制 | 基本形 | 核となるイメージ | 日本語の目安 | 焦点 |
|---|---|---|---|---|
| 過去進行形 | was / were + -ing | 過去のある一瞬の動作(点) | (その時)〜していた | その瞬間に動作が進行中だったこと |
| 過去完了形 | had + 過去分詞 | 基準点より前の完了・結果(点・線) | (その時までに)〜してしまっていた / 〜したことがあった | 基準点より前にすでに動作が完了していたこと |
| 過去完了進行形 | had been + -ing | 基準点まで続いていた動作の継続(線) | (その時までずっと)〜し続けていた | 基準点までの期間、動作が途切れず行われていたこと |
過去進行形は「過去の特定の瞬間」にカメラを向け、その時に何が行われていたかを切り取ります。一方で過去完了形は「過去の基準点」を定め、それより前に起きた出来事や完了した事実に着目します。そして過去完了進行形は、「過去の基準点まで一定の期間ずっと動作が続いていた」というプロセスの長さに焦点を当てます。
2つの時制に絞って比較したいときは、過去完了進行形と過去進行形の解説も参考になります。
時間軸図解とカメラワークで掴むイメージ
3つの時制の違いを感覚的に理解するには、「時間軸(タイムライン)」と「カメラワーク」の比喩が役立ちます。
時間軸で見る「点」と「線」の違い
英語の時制を時間軸上で表すと、意識がどこに向いているかが明確になります。
- 過去進行形: 過去の基準点(点)にスポットライトが当たっています。時間軸上の1点をピンポイントで拡大し、「その瞬間、動作が進行の途中だった」ことを表します。
- 過去完了形: 過去の基準点(点B)よりもさらに前(点A:いわゆる大過去)で出来事が生じ、点Bの時点ではすでに終わっている、または点Bにその影響や結果が残っている状態を表します。
- 過去完了進行形: 過去の基準点(点B)に向けて、点Aから点Bまで矢印(線)が伸びている状態です。「過去のある時点まで、その動作がどのくらいの長さ継続していたか」を示します。
スナップ写真とビデオ録画のカメラワーク
ネイティブスピーカーがそれぞれの時制を使うとき、頭の中では異なる映像が再生されています。
過去進行形は「スナップ写真(静止画)」です。シャッターを切ったまさにその瞬間、人物が腕を振っている途中、雨粒が空中に浮いている途中を静止画として捉えます。
そのため、When I looked outside, it was raining.(外を見たとき、雨が降っていた)のように、見た瞬間の情景描写に用いられます。
過去完了形は「出来事の報告書」です。過去の基準点に立った話し手が、「それ以前に何が起きたか」を振り返って確認します。動作の最中を描写するのではなく、「会議はすでに始まっていた」「鍵を家に忘れていた」という事実の確定を伝えます。
過去完了進行形は「巻き戻し再生されたビデオ録画」です。過去の基準点に到達するまでのプロセスを、時間をかけて撮影した映像のように捉えます。動作の労力や疲労、継続期間の長さに対する感情が込められることが多くなります。
スナップ写真。過去の一瞬に動作が進行途中だった情景を切り取る
出来事の報告書。過去の基準点より前に完了した事実や結果を確認する
ビデオ録画。基準点まで動作が一定期間続いていたプロセスを捉える
時間軸上の位置づけと頭に思い浮かべる映像の違いを確認できます。
次の疑問過去完了と過去完了進行形のニュアンスの差をさらに深掘りしたいなら、過去完了と過去完了進行形の違いで動作の継続感を整理できます。
同一動詞で比べる3つの時制の明確な違い
文脈によるニュアンスの差を明確にするために、同じ動詞を用いた例文でそれぞれの時制を比較してみましょう。ここでは日常会話でも頻出する wait(待つ)、rain(雨が降る)、study(勉強する)を取り上げます。
1. wait(待つ)の比較
- 過去進行形:
When Ken arrived at the station, Yuka was waiting for him.
(ケンが駅に着いたとき、ユカは彼を待っているところだった。)
解説: ケンが到着したまさにその瞬間、ユカが改札前などで待っている姿が描写されています。どれくらいの時間待っていたのかという期間には触れていません。 - 過去完了形:
When Ken arrived at the station, Yuka had already left.
(ケンが駅に着いたとき、ユカはすでに立ち去っていた。)
解説: ケンの到着より前に、ユカが帰るという動作が完了しています。二人の動作には時間的な前後関係が存在します。 - 過去完了進行形:
When Ken arrived at the station, Yuka had been waiting for him for two hours.
(ケンが駅に着いたとき、ユカは彼を2時間ずっと待ち続けていた。)
解説: ケンが到着するまでの2時間という待ち時間の長さに焦点があります。ユカが待たされて疲れたり怒ったりしている感情的なニュアンスが自然と伝わります。
2. rain(雨が降る)の比較
- 過去進行形:
When I woke up, it was raining heavily.
(目が覚めたとき、激しい雨が降っていた。)
解説: 目を開けたその瞬間に、窓の外で雨がざあざあ降っている場面を切り取っています。 - 過去完了形:
When I woke up, the rain had stopped.
(目が覚めたとき、雨はすでにやんでいた。)
解説: 起きるより前の時点で雨がやみ、起きた時点では雨が降っていない状態を表します。 - 過去完了進行形:
When I woke up, the ground was wet because it had been raining all night.
(目が覚めたとき、夜通し雨が降り続いていたため地面が濡れていた。)
解説: 起きた時点では雨がやんでいるか小康状態ですが、夜の間中ずっと降り続いていたという動作の継続とその影響(地面が濡れていること)を説明しています。
3. study(勉強する)の比較
- 過去進行形:
At 9 p.m. yesterday, Takuya was studying English.
(昨夜の9時、タクヤは英語を勉強していた。)
解説: 昨夜9時という特定の瞬間に、タクヤが机に向かって勉強に取り組んでいる最中だったことを示します。 - 過去完了形:
Takuya had studied English for three years before he moved to London.
(タクヤはロンドンへ引っ越す前に、3年間英語を勉強していた。)
解説: ロンドン移住という過去の基準点以前の学習経験を述べています。引っ越し時点で勉強の継続よりも「3年間学んだという実績・蓄積」に視点があります。 - 過去完了進行形:
Takuya had been studying for five hours, so his eyes were completely bloodshot.
(タクヤは5時間ぶっ続けで勉強していたので、目は完全に充血していた。)
解説: 5時間という長時間の集中的な動作の継続と、その結果として生じた直後の肉体的状態(目の充血)を強調しています。
過去進行形
- 駅に着いた瞬間、待っている姿を描写
- 期間には触れず、その瞬間の様子を示す
- Yuka was waiting for him.
過去完了形
- 駅に到着する前に立ち去る動作が完了
- 2人の動作に時間的な前後関係がある
- Yuka had already left.
過去完了進行形
- 到着するまで2時間待ち続けた長さに焦点
- 疲労や怒りなどの感情が伝わる
- Yuka had been waiting for two hours.
同じ動詞でも時制によって焦点や状況の伝わり方が異なります。
具体的な文での使われ方をさらに確認したいときは、過去進行形の使い方の例文集をあわせてご覧ください。
次の疑問特に判断が難しい過去完了進行形を例文とセットで復習したいときは、過去完了進行形の使い方と例文が役に立ちます。
見分け方のシグナル語と状態動詞のルール
英文法問題や読解で時制を素早く判断するためには、文中に含まれるキーワード(シグナル語)と動詞の種類(状態動詞か動作動詞か)に注目することが重要です。
文脈を決定づけるシグナル語一覧
| 時制 | 共起しやすい代表的な語句 | 文脈の特徴 |
|---|---|---|
| 過去進行形 | when(〜したとき), while(〜している間), at that time, at that moment | 過去の特定の瞬間に同時並行していた動作 |
| 過去完了形 | already, yet, before, by the time, never, twice / three times | 過去の基準点より前の完了・経験・回数 |
| 過去完了進行形 | for + 期間, since + 過去の起点, how long, all morning / all day | 過去の基準点まで切れ目なく続いていた期間 |
「how many times(回数)」と「how long(期間)」の決定的な違い
資格試験や入試問題で頻出する判別基準が「回数」と「期間」の違いです。
動作が何回起きたかという「回数」を数える表現(once, twice, three times, how many times, several times など)は、過去完了進行形には使えません。動作が途中で何度も区切られて完了しているため、過去完了形を用います。
- 適切: She had visited Paris three times before she turned twenty.
(彼女は20歳になる前にパリを3回訪れていた。) - 不適切: She had been visiting Paris three times...(回数表現と進行形の継続は両立しない)
一方、「どれくらいの長さ続いていたか」という期間を尋ねる・述べる表現(how long, for two weeks など)は、動作動詞であれば過去完了進行形と極めて相性が良くなります。
- How long had you been driving when the engine started making noise?
(エンジンから異音がし始めたとき、あなたは何時間運転を続けていたのですか?)
状態動詞は過去完了進行形にできない例外ルール
「過去の基準点までずっと状態が続いていた」と言いたい場合でも、その動詞が「状態動詞」である場合は進行形にできません。そのため、意味は継続であっても過去完了形(had + 過去分詞)を使用します。
主な状態動詞には以下のようなものがあります。
- 心理・知覚・認識: know(知っている), like(好む), love(愛する), believe(信じる), understand(理解している)
- 所有・関係: have(持っている), belong to(〜に所属している), own(所有する)
- 状態の継続: resemble(似ている), remain(〜のままである)
例えば「彼らは結婚する前、10年間お互いを知っていた」を表す場合、動詞 know は状態動詞なので進行形にできません。
- 正: They had known each other for ten years before they got married.
- 誤: They had been knowing each other for ten years...
なお、live(住む)や work(働く)は状態的性質と動作的性質の両面を持つため、過去完了形(had lived)でも過去完了進行形(had been living)でも継続を表せます。
過去完了形を使うと「長期的で安定した定住・勤務」、過去完了進行形を使うと「一時的な滞在・精力的な活動のプロセス」というニュアンスが加わります。

否定文・疑問文の作り方と語順の整理
過去進行形、過去完了形、過去完了進行形の否定文・疑問文の構造を正しく把握しておくと、英作文やリスニングでの理解がスムーズになります。助動詞や be 動詞の位置に注目して整理しましょう。
否定文の作り方
| 時制 | 語順のルール | 例文 |
|---|---|---|
| 過去進行形 | 主語 + was / were + not + -ing | He was not (wasn't) sleeping when I called. (私が電話したとき、彼は眠っていなかった。) |
| 過去完了形 | 主語 + had + not + 過去分詞 | The train had not (hadn't) arrived yet at that time. (その時、電車はまだ到着していなかった。) |
| 過去完了進行形 | 主語 + had + not + been + -ing | We had not (hadn't) been waiting long before the bus came. (バスが来るまで、私たちはそれほど長く待っていなかった。) |
否定の not は、常に先頭の助動詞(または be 動詞)の直後に置かれます。過去完了進行形では had と been の間に not が挟まる点に注意してください。had been not -ing としないよう気をつけましょう。
疑問文の作り方
| 時制 | 語順のルール | 例文 |
|---|---|---|
| 過去進行形 | Was / Were + 主語 + -ing ...? | Were you playing tennis when the storm started? (嵐が始まったとき、テニスをしていたのですか?) |
| 過去完了形 | Had + 主語 + 過去分詞 ...? | Had she seen the movie before you invited her? (あなたが誘う前に、彼女はその映画を見たことがありましたか?) |
| 過去完了進行形 | Had + 主語 + been + -ing ...? | Had they been arguing until the manager showed up? (マネージャーが現れるまで、彼らは言い争いを続けていたのですか?) |
疑問詞(What, Where, How long など)を用いる疑問文では、疑問詞を文頭に置き、その直後に上記の疑問文の語順を続けます。
- What were you doing at 8 p.m. yesterday?
(昨日の午後8時、あなたは何をしていましたか?) - How long had you been studying before you took a break?
(休憩を取る前、あなたは何時間勉強し続けていたのですか?)
次の疑問過去進行形の語順に慣れてきたら、文構造で迷いやすい過去進行形の受動態の作り方もあわせて確認しておくと安心です。
迷わず選べる3秒判定フローチャート
テストの空欄補充や英会話でどの時制を使うべきか迷ったときは、以下の判定ステップを順番に辿ることで正しい時制へ最短で到達できます。
時制判定のYes/No分岐手順
- ステップ1(過去の基準点があるか?)
文中に過去の特定の時点(when S + 過去形、yesterday at 3、before S + 過去形 など)が存在するか確認します。
→ No の場合:単純な過去形(did)や現在完了形(have done)を検討します。
→ Yes の場合:ステップ2へ進みます。 - ステップ2(その基準点より「前」の出来事か、その瞬間「同時」か?)
→ 「同時(その瞬間まさに途中)」の場合:過去進行形(was/were doing)を選択します。
例: When he called, I was cooking.(電話が鳴ったその瞬間に料理中だった)
→ 「基準点より前」の場合:ステップ3へ進みます。 - ステップ3(基準点まで「動作の継続」があるか?)
文中に for や since、all day などがあり、基準点までずっと続いていた文脈か確認します。
→ No(完了・経験・結果・回数):過去完了形(had done)を選択します。
例: I had finished the work before noon.(正午より前に仕事を終えていた)
→ Yes(基準点までの継続):ステップ4へ進みます。 - ステップ4(その動詞は状態動詞か?)
know, have, belong などの進行形にできない動詞かどうかをチェックします。
→ Yes(状態動詞):過去完了形(had done)を選択します。
例: We had known each other for five years.(5年間知り合いだった)
→ No(動作動詞):過去完了進行形(had been doing)を選択します。
例: He had been running for an hour.(1時間走り続けていた)
試験問題での消去法テクニック
空欄補充問題では、選択肢の消去法が非常に有効です。
- 空欄の後に three times や twice などの回数表現がある場合、進行形を含む選択肢(was doing、had been doing)を真っ先に消去します。
- 文中に for two hours before he arrived のように「過去の基準点までの期間」が明示されている場合、瞬間の動作を表す過去進行形(was doing)を消去します。
- 主語と空欄の動詞が know や belong の場合、進行形の形をしている選択肢を文脈に関わらずすべて消去します。
過去の特定時点が文中にあるか確認する
その瞬間同時なら過去進行形、前なら次へ
基準点までの継続がなければ過去完了形
状態動詞なら過去完了、動作動詞なら完了進行
基準点の有無や継続、動詞の種類を順にチェックして判別します。
理解度を深める実践問題と詳しい解説
学んだ知識を定着させるために、実際の文脈に合わせた空欄補充問題に挑戦してみましょう。それぞれの文脈とシグナル語に着目して解いてみてください。
問題
次の文の空欄に入る最も適切なものを、選択肢(A)〜(D)の中から1つ選びなさい。
第1問
When I opened the front door, my mother ( ) dinner in the kitchen.
(A) had cooked
(B) was cooking
(C) had been cooked
(D) has cooked
第2問
Ken was out of breath when he reached the summit because he ( ) for three hours without rest.
(A) was climbing
(B) has climbed
(C) had been climbing
(D) is climbing
第3問
By the time Ms. Davis joined our department, I ( ) there for more than six years.
(A) had worked
(B) was working
(C) have worked
(D) am working
第4問
Before the concert started yesterday, the pianist ( ) that complex piece four times.
(A) was practicing
(B) had been practicing
(C) had practiced
(D) is practicing
第5問
We ( ) each other since our childhood when we met again in New York last year.
(A) had known
(B) had been knowing
(C) were knowing
(D) have known
解答と解説
第1問の解答: (B) was cooking
日本語訳: 私が玄関のドアを開けたとき、母は台所で夕食を作っているところだった。
解説: 玄関を開けた「その瞬間」に母が料理をしている最中だったという情景を描写しています。
過去のある一瞬における動作の進行を表すため、過去進行形の (B) が正解です。(A) だとドアを開けた時点ですでに料理を作り終えていたことになり文脈と合いません。
第2問の解答: (C) had been climbing
日本語訳: ケンが山頂に到達したとき、3時間休まず登り続けていたため息が切れていた。
解説: 山頂に到達したという過去の基準点(reached)の直前まで、「3時間休まず登り続けていた(for three hours)」という動作が継続していました。
その結果として息が切れていた(was out of breath)という状態に繋がっているため、動作の継続プロセスを強調する過去完了進行形の (C) が正解です。
第3問の解答: (A) had worked
日本語訳: デイビスさんが私たちの部署に配属された時までに、私はそこで6年以上働いていた。
解説: 過去の基準点(joined)より前に始まった状態が基準点まで及んでいたことを表します。
work は過去完了形でも過去完了進行形でも継続を表せますが、選択肢の中で文法的に適合するのは過去完了形の (A) のみです。(C) の現在完了形は過去の基準点(By the time Ms. Davis joined)と一緒には使えません。
第4問の解答: (C) had practiced
日本語訳: 昨日コンサートが始まる前に、そのピアニストはその難曲を4回練習していた。
解説: 文末に four times(4回)という回数表現があります。
回数を表す語句は完了進行形とは併用できず、完了形を用います。過去の基準点(started)より前の経験・実績であるため、過去完了形の (C) が正解です。(B) の過去完了進行形は回数表現があるため不適切です。
第5問の解答: (A) had known
日本語訳: 昨年ニューヨークで再会したとき、私たちは幼少期からお互いを知っている仲だった。
解説: 過去の基準点(when we met again)までの継続(since our childhood)を表しています。
動詞 know は「知り合いである」という心理的状態を表す状態動詞であるため、進行形(-ing)にできません。したがって過去完了進行形の (B) ではなく、過去完了形の (A) が正解となります。
続けて読む
理解度チェック
Q1. 過去の基準点までの継続を表す際、状態動詞に使う時制はどれ?
- 過去進行形
- 過去完了形
- 過去完了進行形
- 現在完了進行形
答えを見る
正解: B. 過去完了形
状態動詞は進行形にできないため、基準点までの継続を表す場合でも過去完了形を使います。
Q2. 過去完了進行形が使えない表現として正しいものはどれ?
- for two weeks
- all morning
- how long
- three times
答えを見る
正解: D. three times
動作が区切られて完了していることを示す回数表現は、過去完了進行形には使えません。
Q3. 空欄に入る最も適切な英文を選びなさい。When I woke up, the rain ( ).
答えを見る
正解: A. had stopped
目が覚める前の時点で雨がやんでいた事実を表すため、過去完了形が適切です。
英語の文法は、話して身につけよう。会話アプリ「モチスピ」英語を話して練習できる会話アプリ。話すたびに、発音・文法・自然さをその場で直してもらえます。無料で試す
よくある質問
- Q. 過去進行形と過去完了進行形の違いは?
- 過去進行形は「過去のある瞬間にまさに動作中だったこと」を写真のように表します。一方、過去完了進行形は「過去の基準点まで一定の期間ずっと動作が続いていたこと」を時間の幅(線)として表します。
- Q. 過去完了と過去進行形の違いは何ですか?
- 過去完了形は「過去の基準点より前に起きた出来事や、すでに終わった完了・結果」を表します。過去進行形は「過去のその時点で動作が進行中であり、まだ終わっていなかったこと」を表します。
- Q. forやsinceがあれば必ず過去完了進行形?
- 必ずしもそうではありません。knowやbelongなどの状態動詞は進行形にできないため、forやsinceがあっても過去完了形を用います。また回数を表す語がある場合も過去完了形になります。
- Q. 過去形と過去完了形はどう使い分ける?
- 出来事が起きた順番どおりに文を並べる場合は過去形で十分です。しかし、過去の基準点よりも前に起きた事象であることを明示し、時間的な前後関係を明確にしたい場合に過去完了形を使います。
- Q. when節の中で過去完了進行形は使えますか?
- 使えます。たとえば「彼から連絡が来たとき、私は3時間運転し続けていた」という文では、主節に過去完了進行形を用い、when節を過去の基準点(過去形)として設定します。
2026年9月25日更新・モチタン辞典編集部