モチタン辞典 › 読みもの › 英文法 › 過去進行形と現在完了進行形

現在完了進行形と過去進行形の違いと使い分け
現在完了進行形と過去進行形の決定的な違いは、「現在の状況とつながっているかどうか」です。過去進行形(was / were + V-ing)は過去の特定の一時点を切り取って「その瞬間に行われていた動作(過去の点)」を表し、現在の状況とは切り離されています。
一方、現在完了進行形(have / has been + V-ing)は過去に始まった動作が「今も続いている」または「直前まで続いていて今に影響を残している(過去から今への線)」を表します。
一目でわかる比較サマリー表と時間軸のイメージ
日本語ではどちらも「〜していた」「〜していたところだ」と訳されることが多いため、英語学習者が最も混同しやすい時制の組み合わせです。まずは2つの時制の根本的な違いを表で確認しましょう。
| 項目 | 過去進行形 | 現在完了進行形 |
|---|---|---|
| 基本形 | was / were + 動詞のing形 | have / has been + 動詞のing形 |
| 時間軸のイメージ | 過去の特定の一時点(点・スナップショット) | 過去から現在まで延びる矢印(線) |
| 発話時(現在)との関係 | 現在とは無関係(過去に完結) | 現在も継続中、または直前の余波が現在にある |
| よく使われる語句 | when, at that time, at 7:00 yesterday | for, since, all morning, lately |
| 焦点が当たる部分 | その瞬間に何をしていたか(場面の描写) | どれくらいの時間その動作を続けているか、今の状態の原因 |
時間軸の捉え方:カメラのスナップショットか、動画の巻き戻しか
過去進行形は、過去のある一瞬をカメラでカシャッと切り取った「写真(スナップショット)」のような時制です。たとえば「昨日の夜8時に電話したとき、何していたの?」と聞かれた場合、意識はその「昨日の夜8時」という過去の1点に留まっています。その動作が今どうなっているかは考慮されません。
これに対して現在完了進行形は、「現在」という地点に立ったまま、過去の開始地点から現在に至るまでの動きを撮影し続けている「動画」のイメージです。
時間軸の矢印は必ず「今(現在)」に突き刺さっています。そのため、「今もまだやっている最中である」か、あるいは「ちょうど今終わったばかりで、その動作の痕跡(息切れ、汗、散らかった部屋など)が今まさに残っている」という状況で使われます。
次の疑問過去との比較だけでなく「今まさにしていること」との区別に迷うなら、現在進行形と現在完了進行形の違いも確認してみましょう。
和訳に頼らない状況判断フローチャート
日本語の「〜していた」という言葉だけに頼ると、どちらの時制を使うべきか判断できなくなります。英語を話す・書くときは、自分が描写したい状況が「現在」とどのような関係にあるかを基準に判断します。
使い分けを導く3つの判断基準
- 基準1:その動作は「今この瞬間」も行われているか? → 行われているなら現在完了進行形(例:3時間前から勉強していて今も机に向かっている)
- 基準2:動作自体は直前に止まったが、「現在の状態」に直接の痕跡や原因を残しているか? → 残しているなら現在完了進行形(例:走るのをやめたばかりで今息が切れている、庭仕事を終えたばかりで今手が汚れている)
- 基準3:発話している「今」とは関係なく、「過去のある一場面」を思い浮かべて描写しているか? → そうであれば過去進行形(例:昨夜地震が起きたとき、お風呂に入っていた)
日常会話の典型場面:手が汚れている理由を聞かれたら?
英語のネイティブスピーカーが時制をどのように選んでいるかを実感できる有名な会話例を見てみましょう。手が泥や油で真っ黒になっている人を見て、理由を尋ねる場面です。
相手が「Why are your hands dirty?(どうして手が汚れているの?)」と現在形で尋ねてきたとき、自然な答えは次のようになります。
I have been fixing my bicycle.(さっきまで自転車を修理していたんだ。)
この場面で I was fixing my bicycle. と過去進行形を使うと、「あの過去の一時点で修理していたよ」という過去の描写に聞こえ、「だから今手が汚れているんだ」という現在の状況への結びつきが弱くなります。
相手が「現在の汚れ」に注目して質問しているため、答える側も「今」に直接つながるhave been fixing(直前まで修理作業を続けていた)を使うのが最も自然です。
一方、次のように過去の状況を尋ねられた場合は過去進行形が正解です。
What were you doing when I called you?(私が電話したとき、何をしていましたか?)
I was fixing my bicycle.(自転車を修理していたところだったよ。)
この会話では、焦点が「電話が鳴った過去の瞬間」にあります。その瞬間に何をしていたかを答えるため、過去進行形を用います。
今この瞬間も行われているなら現在完了進行形を選ぶ
直前に終わり今の状態に痕跡や原因があるなら現在完了進行形
今と無関係に過去の一場面を描写するなら過去進行形を選ぶ
現在の状況との関係性から適切な時制を判断する3つのステップです。
過去の特定の瞬間にしていた動作を表現する基礎は、過去進行形の使い方で詳しく解説しています。
同一動詞で比べる場面別対比例文5選
同じ動詞を使った例文を比較することで、2つの時制のニュアンスの違いが鮮明になります。代表的な5つの動詞で確認しましょう。
1. 雨が降る(rain)
It was raining when I woke up this morning.(今朝起きたとき、雨が降っていた。)
解説:起きたという「過去の一時点」で雨が降る動作が進行していたことを表します。現在雨が降っているかどうかはこの文だけではわかりません。
It has been raining since this morning.(今朝からずっと雨が降り続いている。)
解説:今朝から始まって、「今この瞬間」も雨が降り続いていることを示します。現在に雨が直結しています。
2. 勉強する・作業する(study / work)
Ken was studying at the library when the earthquake occurred.(地震が起きたとき、ケンは図書館で勉強していた。)
解説:地震が発生した過去の瞬間にケンがしていた動作を切り取っています。
Ken has been studying at the library for four hours.(ケンは4時間ずっと図書館で勉強し続けている。)
解説:4時間前に勉強を始め、今も図書館で机に向かって勉強している最中であることを示します。
3. 待つ(wait)
I was waiting for the bus when she offered me a ride.(彼女が車に乗せてくれると言ったとき、私はバスを待っていた。)
解説:彼女が声をかけてくれた過去の瞬間に、バスを待つ動作が進行していました。
I have been waiting for you for over an hour!(あなたのことを1時間以上も待っているんだよ!)
解説:1時間前から待つ動作が始まり、今相手が現れた瞬間まで待ち続けていた感情(苛立ちや安堵)を込めて発言しています。
4. 料理する(cook)
My father was cooking dinner when the phone rang.(電話が鳴ったとき、父は夕食を作っていた。)
解説:電話が鳴ったその瞬間の父の動作を描写しています。
The kitchen smells amazing because my father has been cooking all afternoon.(父が午後ずっと料理をしているので、キッチンから素晴らしい匂いがしている。
)
解説:午後から料理を続けており、その作業の結果として「今、素晴らしい匂いが漂っている」という現在の状態と結びついています。
5. 話す(talk about)
We were just talking about you when you walked in.(君が入ってきたとき、ちょうど君の話をしていたところだったんだ。)
解説:部屋に入ってきた過去の瞬間に話をしていたことを表す、会話で非常によく使われる定番フレーズです。
We have been talking about this problem for weeks, but we haven't found a solution yet.(私たちは何週間もこの問題について話し合い続けているが、まだ解決策が見つかっていない。
)
解説:何週間も前から現在に至るまで継続して話し合いを行っているプロセスを強調しています。
日常会話で使える過去の場面描写をさらに見たい方は、過去進行形の使い方の例文集を参考にしてください。
さまざまな動詞での具体的な用例は、現在完了進行形の使い方の例文集でまとめて確認できます。
一緒に使われるキーワードと試験での見分け方
TOEICや高校英語の文法問題では、文中に含まれる副詞や接続詞が時制を決める大きな手がかりになります。代表的なシグナル表現を整理しておきましょう。
| 時制 | 代表的なキーワード(シグナル表現) | 着眼点 |
|---|---|---|
| 過去進行形 | when + S + 過去形, at that time, at 8:00 last night, then | 「そのとき」という過去の特定の1点を指定する語 |
| 現在完了進行形 | for + 期間, since + 起点, all day, how long ~?, lately / recently | 過去から現在までの「期間の長さ」や「継続」を示す語 |
秒速判別チェックリスト
- 文中に when S + 過去形動詞(〜したとき)があるか? → ある場合、その過去の瞬間に進行していた動作を表すため過去進行形が有力候補になります。
- 文中に for three hours(3時間)、since yesterday(昨日から)、all morning(午前中ずっと)などの「期間・継続」を表す語があるか? → 現在まで続く動作であれば現在完了進行形が有力候補になります。
- 文全体の基準時が「現在」か「過去」か? → 前後の文に now や look!、あるいは現在の状態を表す動詞(is, are など)がある場合、過去進行形ではなく現在完了進行形を選びます。

過去完了進行形・現在完了形との違いを整理
現在完了進行形を理解する上で、形が似ている「過去完了進行形」および「現在完了形(継続・完了結果)」との違いを整理しておくことが不可欠です。
1. 過去完了進行形(had been + V-ing)との違い
過去完了進行形は、「過去のある時点」を基準として、それより前からその時点までずっと続いていた動作を表します。
- 現在完了進行形(have / has been V-ing):過去のある時点から「今(現在)」まで続いている動作
- 過去完了進行形(had been V-ing):さらに前の過去から「過去の基準時」まで続いていた動作
例文で比較してみましょう。
The ground is wet because it has been raining.(地面が濡れている。雨が降っていたからだ。)
解説:地面が濡れているのが「今(is)」なので、雨が降っていたのも現在直前までの動作であり、現在完了進行形を使います。
The ground was wet because it had been raining.(地面が濡れていた。雨が降っていたからだ。)
解説:地面が濡れていたのが「過去(was)」です。雨が降っていたのはそれより前(大過去からその過去の時点まで)の継続動作であるため、過去完了進行形を使います。
2. 現在完了形(have + 過去分詞)との違い
現在完了形の継続用法(have + 過去分詞)と現在完了進行形(have been + V-ing)は、どちらも過去から現在までの継続を表しますが、焦点の当たり方が異なります。
現在完了形は「完了した結果」や「状態の継続」に重きを置きます。一方、現在完了進行形は「動作そのものの生き生きとした継続(プロセス)」に重きを置きます。
I have painted the ceiling.(天井のペンキ塗りを終えた。)
解説:現在完了形では、「ペンキ塗りが完了した」という結果に焦点があります。天井は塗り終わっています。
I have been painting the ceiling.(天井のペンキ塗りをずっとやっている/やっていた。)
解説:現在完了進行形では、「ペンキを塗る作業をずっと続けている」という動作・プロセスそのものに焦点があります。作業がまだ途中である可能性が高い表現です。
現在完了進行形
- have/has been V-ingの形
- 過去から「今」まで続く動作
- 動作そのものの生き生きとした継続
過去完了進行形
- had been V-ingの形
- 過去の基準時まで続いていた動作
- 地面が濡れていた(過去)原因の雨
現在完了形
- have + 過去分詞の形
- 過去から現在までの継続や完了
- 完了した結果や状態の継続に焦点
基準となる時点や焦点の当て方による3つの時制の違いです。
次の疑問基準時が過去にずれた場合のニュアンスを深掘りしたいときは、過去完了進行形と現在完了進行形の違いが参考になります。
状態動詞のルールとよくある間違い
現在完了進行形を使う際に絶対に落としてはならない文法ルールが、「状態動詞」の扱いです。
状態動詞は原則として進行形(完了進行形含む)にできない
英語の動詞は、自分の意志でいつでも開始・中断できる「動作動詞(run, study, writeなど)」と、個人の意志で一瞬にして変えることが難しい状態を表す「状態動詞(know, belong, like, resembleなど)」に大別されます。
状態動詞は進行形にすることができないため、過去から現在までの継続を表したい場合でも、have been + V-ing にすることはできません。代わりに「現在完了形(have + 過去分詞)」を用います。
誤:I have been knowing him for ten years.
正:I have known him for ten years.(私は彼と知り合って10年になります。)
動詞 know は状態を表す動詞であるため、進行形にはできません。10年間の継続を表すには現在完了形を用います。
住む(live)や働く(work)の使い分け
live(住む)や work(働く)は、長期的な状態とも一時的な動作とも解釈できる動詞です。そのため、現在完了形と現在完了進行形の両方を使うことができます。
I have lived in Tokyo for five years.(私は東京に5年間住んでいます。)
解説:永住や長期定住のニュアンスがあり、安定した状態として表現しています。
I have been living in Tokyo for five years.(私は東京に5年間住み続けています。)
解説:一時的な滞在のニュアンスを含みやすく、生活している日々の営みや動作を生き生きと意識した表現になります。
日常会話ではどちらを用いても意味はほぼ通じますが、厳密な文法テストでは状態動詞(know, like, have「持っている」)の進行形不可ルールが頻出するため、注意深く区別しましょう。
動作動詞(進行形可)
- run
- study
- write
状態動詞(進行形不可)
- know
- belong
- like
- resemble
両方使える動詞
- live
- work
動詞の性質によって完了進行形にできるかどうかが決まります。
理解度チェックテストと詳しい解答解説
学んだ知識が定着しているか、空欄補充問題でテストしてみましょう。文脈とキーワードに着目して最も適切な選択肢を選んでください。
問題1
A: Why are your eyes red?
B: I ( ______ ) onions.
(A) was chopping
(B) have been chopping
(C) chopped
正解:(B) have been chopping
解説:質問者が「Why are your eyes red?」と、目の充血という「現在の状態」について理由を尋ねています。
玉ねぎを刻む作業を直前まで続けていたことが原因で現在目が赤いという因果関係を示すため、現在完了進行形の have been chopping が適切です。
问题2
When the fire alarm went off, Mr. Davis ( ______ ) a presentation to the client.
(A) has been giving
(B) had given
(C) was giving
正解:(C) was giving
解説:文頭に「When the fire alarm went off(火災報知器が鳴ったとき)」という過去の特定の一時点を示す節があります。警報が鳴ったその瞬間に進行中だった動作を描写しているため、過去進行形の was giving が正解です。
問題3
We ( ______ ) each other since we were elementary school students.
(A) have been knowing
(B) were knowing
(C) have known
正解:(C) have known
解説:「since we were elementary school students(小学生のときから)」という起点の表現があり、継続を表します。
しかし動詞 know は状態動詞であるため進行形(完了進行形含む)にできません。したがって、現在完了形の have known を選びます。
問題4
She ( ______ ) on that report all morning, and she still needs another hour to finish it.
(A) has been working
(B) was working
(C) is worked
正解:(A) has been working
解説:「all morning(午前中ずっと)」という期間表現があり、文の後半で「and she still needs another hour(終えるのにまだあと1時間必要だ)」と現在も作業が終わっていないことが明示されています。
過去から現在へ続き、現在も進行中の動作であるため、現在完了進行形の has been working が正解です。
続けて読む
理解度チェック
Q1. 現在完了進行形の特徴として最も適切な説明はどれ?
- 過去の特定の一時点を写真のように切り取った描写
- 過去に完結し、発話している現在とは無関係な動作
- 過去から現在まで続き、今の状態の原因や余波を示す
- 完了した結果に重きを置き、作業がすべて終わったこと
答えを見る
正解: C. 過去から現在まで続き、今の状態の原因や余波を示す
現在完了進行形は過去から現在まで続く矢印のイメージで、今も継続中か、直前の余波が現在にある状況で使われます。
Q2. 空欄に入る最も適切な英文は? I ( ) him for ten years.
- have known
- have been knowing
- was knowing
- had knowing
答えを見る
正解: A. have known
knowは状態動詞のため進行形(完了進行形含む)にできません。過去から現在までの継続を表すには現在完了形を用います。
Q3. 過去進行形を選ぶ際の手がかりとなるキーワードはどれ?
- since yesterday
- all morning
- when + S + 過去形
- for three hours
答えを見る
正解: C. when + S + 過去形
「when + S + 過去形」は過去の特定の1点を指定するため、その瞬間に進行していた動作を表す過去進行形が有力候補です。
英語の文法は、話して身につけよう。会話アプリ「モチスピ」英語を話して練習できる会話アプリ。話すたびに、発音・文法・自然さをその場で直してもらえます。無料で試す
よくある質問
- Q. 過去進行形と現在完了進行形の違いは?
- 過去進行形(was/were doing)は過去の特定の一瞬に行われていた動作を表し、現在とは無関係です。現在完了進行形(have been doing)は過去から現在まで続いている動作や、直前まで行われていて今に影響がある動作を表します。
- Q. 「直前まで〜していた」はどちらを使う?
- 直前まで行っていて「その影響・痕跡が今残っている」場合は現在完了進行形を使います。息が切れている、手が汚れているなど現在の状態の原因を説明する場面では have been doing が自然です。
- Q. forやsinceがあるときはどちら?
- 過去から現在までの継続を表す for(〜の間)や since(〜以来)がある場合は、現在完了進行形(または状態動詞なら現在完了形)を使います。過去進行形は when など特定の一点を示す語とよく使われます。
- Q. knowはなぜ現在完了進行形にできない?
- know は「知っている」という状態を表す動詞(状態動詞)だからです。状態動詞は原則として進行形にできないため、過去から現在までの継続を表す場合は現在完了形(have known)を用います。
- Q. 過去完了進行形との違いは何ですか?
- 現在完了進行形は「過去から現在まで」の動作ですが、過去完了進行形(had been doing)は「過去のある時点より前から、その過去の時点まで」続いていた動作を表します。基準となる時間が現在か過去かが異なります。
2026年10月8日更新・モチタン辞典編集部
since
for
duration