
武蔵野個別指導塾の特徴
【高1英文法】完了形を図解で総まとめ—現在完了・過去完了・未来完了と完了進行形(高校英語・完了形・現在完了・過去完了)|武蔵野個別指導塾

現在・過去・未来を基準にした時間軸の図と、空所補充・並べ替え・和文英訳で完了形を整理します。2つの短い英文を読み、出来事の順序や継続を動詞の形から確かめられます。
よくあるのは、通学電車の窓に映る自分を見ながら英文を読み、「昨日から待っている」は過去の話なのか、今の話なのかで手が止まるという場面です。日本語の「待っている」だけを見ると進行形を選びたくなりますが、「いつから」と「いつまで」を一緒に読むと、必要な形が変わります。完了形は、動作が終わったことだけを表す形ではありません。今まで続いている状態も、ある時点までに積み重なった経験も表します。
現在完了・過去完了・未来完了を別々の暗記項目にすると、長文の途中で時間の前後が見えなくなりがちです。まず「どの時点に立って、それより前を見るのか」を決めましょう。その基準をそろえると、完了進行形や since と for も同じ時間軸の上で説明できます。英文を読むときにも、自分で書くときにも、動詞の形を時間の根拠として使えるようにしていきます。
この単元で身につけること
- 基準の時点を見つけます。現在完了は今、過去完了は過去のある時点、未来完了は未来のある時点を基準に、それ以前の出来事や状態を捉えます。
- 現在完了の3用法を文脈と結びつけます。完了・結果、経験、継続という名前を、何が終わったか、何回あったか、どれだけ続いたかという問いに置き換えます。
- 過去の出来事の順序を読み分けます。過去完了が出たら、物語の基準より前の出来事や、そこまで続いた状態を探します。
- 完了形と完了進行形を選び分けます。成果や回数を示すのか、活動の継続を前面に出すのかを確認し、動詞の性質も考えます。
- since と for を使い分けます。起点を示す語と期間を示す語の違いを、時間軸の点と長さに対応させます。
前の単元で扱う現在・過去・未来と進行形が「いつの状態や動作か」を示す土台になり、完了形はそこに「それ以前からのつながり」を加えます。読みながら迷ったら、日本語訳の語尾だけで決めず、基準の時点と動詞の後ろにある時間表現を確認してください。
基本の考え方
現在完了は「今」を基準に読む
時制とは、動詞などの形で時間の関係を示す仕組みです。現在完了の基本形は「主語 + have / has + 過去分詞」で、過去分詞とは finished、seen、written など、完了形や受動態に使う動詞の形です。主語が he、she、単数の人や物なら has、それ以外では通常 have を選びます。have を「持っている」と訳さず、その後ろの過去分詞とまとめて読みます。
I have just finished my homework.
私はちょうど宿題を終えたところです。
これは完了・結果の用法です。宿題を終えた出来事を、今の「もう終わっている」という状況につなげています。just は「ちょうど」、already は「すでに」で、完了を読み取る手がかりになります。ただし、その語を見つけるだけでは十分ではありません。何がどうなった結果なのかまで読みます。
Emma has lost her key.
エマは鍵をなくしてしまっています。
この文は、普通は今も鍵が見つからない状況を伝えます。なくした時刻を報告することより、今の状態が話の中心です。ただし、現在完了という形が永久にその状態の継続を保証するわけではなく、後の文で見つかったことが補われる場合もあります。まず発話時点でのつながりを押さえましょう。
Ken has visited that museum twice.
ケンはその博物館を2回訪れたことがあります。
これは経験の用法です。今までの期間の中で訪れた経験を数えており、twice が回数を示します。訪れた日付を特定して述べる文とは焦点が違います。never は「一度もない」、疑問文の ever は「これまでに」という意味で、経験を尋ねたり否定したりするときによく使います。
Yuki has lived in this town for three years.
ユキはこの町に3年間住んでいます。
これは継続の用法です。住み始めたのは過去ですが、その状態が今まで続いています。日本語を「住んだことがある」とすると、今も住んでいるという情報が落ちます。期間と動詞の意味を合わせて読むことが必要です。図1のように、同じ「過去から今を見る」形でも、完了・結果では出来事と今の状態、経験では今までの出来事、継続では今まで伸びる区間に目を向けます。

図1の赤い点は宿題を終えた出来事、橙の2点は博物館を訪れた2回の経験、緑の線は住み続けている期間です。縦の紺線はどの段でも今を示します。線が今に達していることを確かめてから、訳に「今まで」の意味が残っているかを見直しましょう。
否定文は have / has の後ろに not を置き、疑問文は have / has を主語の前へ出します。一般動詞の現在形のように do や does を追加しません。否定文や疑問文では「まだ」「もう」を表す yet が文末に置かれることもあります。
I have not read the last page yet.
私はまだ最後のページを読んでいません。
Have you ever made bread?
あなたはこれまでにパンを作ったことがありますか。
過去・未来へ基準を動かす
過去完了は「主語 + had + 過去分詞」です。過去のある時点より前に起こったことを示す用法を大過去と呼びます。大過去は「ものすごく昔」という意味ではありません。基準の時点より前なら、数分前でも過去完了で表せます。
When I arrived at the station, the train had already left.
私が駅に着いたとき、列車はすでに出発していました。
着いた時点を基準に、その前に列車が出発したと読めます。英文に現れる順番は「到着、出発」でも、実際に起きた順番は「出発、到着」です。英語を左から訳すだけでなく、動詞の形から出来事を並べ直しましょう。
Tom had known Ken for five years when they started the project.
トムは、その計画を始めたときには、ケンと知り合って5年になっていました。
こちらは過去の基準までの継続です。知り合ったのが5年前で、その状態が計画の開始時まで続いていたと読みます。had known だけから、今は知り合いではないと判断することはできません。文が伝える範囲は、その過去の時点までです。
未来完了は「主語 + will have + 過去分詞」で、未来のある時点までを見渡します。by は「その時までに」という期限を表し、その時点でどうなっているかを考える手がかりになります。
I will have finished this report by Friday.
私は金曜日までにはこの報告書を書き終えているでしょう。
By next April, Emma will have lived here for six years.
来年の4月には、エマはここに住んで6年になるでしょう。
最初は未来の期限までの完了、次は未来の時点までの継続です。未来完了でも「終わる」だけに意味を限定しないでください。また、will have の have は主語が Emma でも has にはなりません。will の後ろは動詞の原形なので、have のままです。
完了進行形と時間表現を合わせる
完了進行形は、ある時点まで続く活動に焦点を当てる形です。現在なら have / has been + 動詞の ing 形、過去なら had been + 動詞の ing 形、未来なら will have been + 動詞の ing 形にします。been は be の過去分詞で、完了形と進行形をつないでいます。
I have been reading this book for an hour.
私はこの本を1時間読み続けています。
I have read three chapters today.
私は今日、3章読みました。
前者は読書という活動が続いたこと、後者は3章という到達した量が中心です。前者から本を読み終えたとは判断できません。また、完了進行形は、今まさに続いている活動だけでなく、直前まで続いていた活動の跡が今に残る場面でも使います。
It has been raining, so the ground is wet.
雨が降っていたので、地面がぬれています。
雨が今も降っているかどうかは、この文だけでは確定しません。今まで続いた雨が、現在の地面の状態の理由になっています。一方、know のように知っている状態を表す動詞は、普通は進行形にしません。継続だから必ず been と ing を使う、とは考えないでください。
I have known Yuki since April.
私は4月からユキと知り合いです。
She had been practicing for an hour when I arrived.
私が着いたとき、彼女は1時間練習を続けていました。
By noon, we will have been working for four hours.
正午には、私たちは4時間作業を続けていることになります。
since は「いつから」という起点、for は「どれくらい」という期間を示します。since April、since nine、since I moved here のように、since の後ろには時点を示す語や、主語と動詞を含む節を置けます。for an hour、for three years の後ろは時間の長さです。for があるだけで完了形とは限らず、過去に終わった期間なら過去形でも使えます。動詞と基準の時点まで合わせて判断しましょう。
例題で使い方を確かめる
例題1 起点と期間を見分ける空所補充
「私は4月からこのクラブに所属しています」という意味になるように、空所に since または for を入れましょう。
I have been a member of this club ( ) April.
私は4月からこのクラブの一員です。
- 動詞の have been を確認します。been の後ろに ing 形がなく、a member という名詞が続いているので、現在完了進行形ではなく、be の現在完了です。
- April が期間の長さではなく、所属し始めた起点であると判断します。「何か月」ではなく「4月から」と答えられるので since を使います。
- 今も所属している意味が残るように訳します。「所属していた」と過去だけの話にしないことが、現在完了の継続を読む際の確認点です。
答え: since
例題2 2つの過去を並べ替える
「私が電話したとき、エマはすでに宿題を終えていました」という意味になるように、括弧内を並べ替えましょう。
When I called, Emma ( already / her homework / had / finished ).
私が電話したとき、エマはすでに宿題を終えていました。
- called が示す電話の時点を基準にします。宿題の終了はそれより前なので、過去完了の had finished を使います。
- 主語 Emma の後ろに had、already、finished の順で置きます。already は、この文では had と過去分詞の間に置くと自然です。
- finished の目的語として her homework を続けます。時間の副詞を配置した後も、「何を終えたか」という動詞と目的語の関係を保ちます。
答え: When I called, Emma had already finished her homework.
図2のように、宿題の終了を左、電話をその右、今をさらに右へ置けば、文の前半と後半の順に惑わされません。過去完了の had finished は「電話の時点から振り返る」形です。

図2の今の点は、電話の時点も過去に属することを示しています。比較する2つの出来事がともに過去だからこそ、基準となる過去と、それ以前を区別します。ただし、前後が before や after で十分に明らかな場合などには両方を過去形で述べることもあり、古い出来事すべてに had を付けるわけではありません。
例題3 未来の期限までの完了を英語にする
「私が帰宅するまでには、ケンは夕食を作り終えているでしょう」を英語にしましょう。帰宅するまでには、を By the time I get home で始めます。
- 主な文の基準を、未来の帰宅時点に置きます。その時点で夕食作りが完了している見込みなので、will have finished を選びます。
- 「夕食を作り終える」は finish making dinner と表します。finish の後ろで行為を表すときは making の形にします。
- by the time の後ろは、時を表す副詞節です。副詞節とは、主な文に「いつ」などの情報を加える、主語と動詞を含むまとまりのことで、未来のことでもここでは get と現在形にします。
答え: By the time I get home, Ken will have finished making dinner.
日本語訳: 私が帰宅するまでには、ケンは夕食を作り終えているでしょう。
未来を指しているという理由だけで、文中の動詞すべてを will に変えないようにしましょう。どのまとまりが期限を表し、どのまとまりがその期限での状態を述べるかを分けると、現在形と未来完了が同じ文にある理由を説明できます。
例題4 活動の継続を表す空所補充
「今も待ち続けていることを強調する」と指定されています。wait を現在完了進行形に変えて空所を埋めましょう。
We ( ) for the bus for twenty minutes.
私たちは20分間、バスを待ち続けています。
- 基準が今なので have を使います。主語は We で、has にはしません。
- 指定が活動の継続なので、been waiting をつなぎます。wait は活動を表し、ここで進行形にすることができます。
- 2つの for の役割を分けます。for the bus は「バスを待つ」の相手、for twenty minutes は待った期間です。for が2回出ても、重複の誤りではありません。
答え: have been waiting
継続を表す現在完了の have waited が使える文脈もありますが、この問題は現在完了進行形を指定しています。実際の読解では、完了形と完了進行形を日本語訳だけで無理に切り離すより、回数や成果と、活動の持続のどちらに焦点があるかを読みましょう。
短い英文1 今につながる経験と継続
次の英文では、冒頭の now を今の基準として読みます。まず英文を通して読み、その後で訳を照らし合わせましょう。
I am on the train now, looking out of the window. I have taken this train every morning since April. At first, I did not notice the small gardens beside the tracks. Recently, however, I have begun to look at them carefully. One garden has changed a lot this month. Someone has planted yellow flowers near its gate. I have been drawing that garden in my notebook for the last ten minutes. I have not finished the picture yet, but I can already see more details than before. This daily journey has become a chance to observe small changes.
日本語訳: 私は今、電車に乗り、窓の外を見ています。4月から毎朝この電車に乗っています。最初は、線路のそばにある小さな庭に気づきませんでした。しかし最近は、庭を注意深く見るようになりました。ある庭は今月、大きく変わりました。誰かが門の近くに黄色い花を植えたのです。私はこの10分間、その庭をノートに描き続けています。まだ絵を描き終えていませんが、以前より細かなところがすでに見えています。毎日の移動が、小さな変化を観察する機会になっています。
At first の文は、乗り始めた当初という過去の様子です。一方、have taken は4月から今まで繰り返してきた行動を表しています。現在完了の継続には、途切れず続く状態だけでなく、一定期間に繰り返される行動も含まれます。have been drawing は直近10分の活動、have not finished は今の未完了を表します。両方が並んでいても矛盾はありません。描き続けているからといって、絵が完成しているとは限らないためです。
this month は現在を含む期間です。この文章では、その期間内の変化を今とつなげて現在完了で述べています。ただし、today や this month を見れば機械的に現在完了にするわけではありません。現在を含む期間でも、終わった個別の出来事として話せば過去形を選ぶことがあります。時間表現は候補を絞る手がかりであり、最終的には話し手の焦点を確認します。
つまずきやすいところと直し方
過去の日時と現在完了を直接結びつける
× I have visited that museum yesterday.
日本語で意図した意味: 私は昨日、その博物館を訪れました。
どこが違うか: yesterday は今から切り離された特定の過去を示すので、その訪問を述べる動詞は現在完了ではなく過去形にします。
○ I visited that museum yesterday.
日本語訳: 私は昨日、その博物館を訪れました。
「昨日までの経験も今と関係するはず」と考えても、英語では訪問の時を yesterday と直接指定するなら、通常は過去形を選びます。なお、since yesterday は「昨日から今まで」という区間の起点を示すため、現在完了と使えます。yesterday という単語だけで判断せず、どのまとまりに入っているかを見ましょう。
起点と期間を取り違える
× Yuki has lived here since three years.
日本語で意図した意味: ユキはここに3年間住んでいます。
どこが違うか: three years は起点ではなく期間の長さなので、その前は since ではなく for にします。
○ Yuki has lived here for three years.
日本語訳: ユキはここに3年間住んでいます。
図3のように、「3年前」という起点と、「3年間」という長さを描き分けると、語の入れ替えに理由を付けられます。since three years ago なら、three years ago が起点なので文法上は可能ですが、この意味は for three years と簡潔に表せます。

図3では、since が左端の点を指し、for が今までの区間全体を指しています。since の後ろを主語と動詞のある節にして「住み始めたときから」と表す場合も、指すのは長さではなく起点です。その節には、過去の開始を表す過去形がよく使われます。
状態を表す動詞まで進行形にする
× I have been knowing Tom for two years.
日本語で意図した意味: 私はトムと知り合って2年になります。
どこが違うか: know はこの意味では知っている状態を表して普通は進行形にしないため、継続を have known で表します。
○ I have known Tom for two years.
日本語訳: 私はトムと知り合って2年になります。
「ずっと」が日本語に入っていても、英語で必ず ing 形にするわけではありません。live や work のように、単純な完了形と完了進行形の両方で継続を表せる動詞もあります。動詞の性質を確かめ、その文で活動の持続を強調する必要があるかを考えます。
短い英文2 過去の基準から未来の見通しへ
次の文章では、最初は昨日の話、最後は今日から見た予定になります。had と will have の基準を同じ点に押し込めず、話の進みに合わせて移してください。
Yesterday, Ken and I met at the library to prepare a short talk. Before I arrived, he had chosen three photographs for our slides. He had been working on the opening for half an hour when I sat down. We compared our notes and decided to explain how the local park had changed. Ken had visited the park many times, so his photographs were useful. Today, we are checking the final slides together. By tomorrow evening, we will have finished the whole presentation. When we give the talk on Friday, we will have been preparing for it for a week. We hope our classmates will enjoy it.
日本語訳: 昨日、ケンと私は短い発表の準備をするために図書館で会いました。私が到着する前に、彼はスライド用の写真を3枚選んでいました。私が席に着いたとき、彼は導入部分に30分間取り組んでいました。私たちはメモを比べ、近所の公園がどのように変化してきたかを説明することに決めました。ケンはその公園を何度も訪れたことがあったので、彼の写真は役に立ちました。今日、私たちは最後のスライドを一緒に確認しています。明日の夕方までには、発表全体を仕上げているでしょう。金曜日に発表するときには、1週間その準備を続けていることになります。クラスメートが楽しんでくれるとよいと思っています。
had chosen の写真選びは到着より前です。had been working の30分は、席に着いた時点までの活動の長さです。過去完了があるたびに「現在からどれほど昔か」を考えるのではなく、文章の中のどの過去を基準にしているかを確認します。Today で基準が今に移った後、will have finished は明日の夕方までの完成を見込みます。最後の未来完了進行形は金曜日までの準備期間に焦点を当てています。準備中に休憩が入らなかった、という意味ではありません。
練習問題
形を選ぶ前に、各問の基準が今・過去・未来のどれかを余白に書いてください。さらに、起点や期間、前後関係を示す語に印を付けると、答えの根拠を短く説明できます。
練習1
「エマはまだ昼食を食べていません」となるように、eat を使い、空所を現在完了の否定形で埋めましょう。
Emma ( ) lunch yet.
エマはまだ昼食を食べていません。
練習2
括弧内を並べ替えましょう。
When the lesson began, I ( my notebook / had / already / opened ).
授業が始まったとき、私はすでにノートを開いていました。
練習3
「来年の3月には、ユキはここに住んで4年になります」を、By next March で始め、live の未来完了を使って英語にしましょう。ここに、は here とします。
練習4
「トムは午前9時から走り続けています」となるように、run の現在完了進行形と since または for を空所に入れましょう。
Tom ( ) ( ) nine this morning.
トムは午前9時から走り続けています。
答えと解説
練習1の答え: has not eaten
Emma は単数なので has を選び、not の後ろは eat の過去分詞 eaten です。yet と合わせて、今の時点で昼食がまだ済んでいないことを表します。過去形 ate と過去分詞 eaten の取り違えにも気を付けましょう。
練習2の答え: When the lesson began, I had already opened my notebook.
日本語訳: 授業が始まったとき、私はすでにノートを開いていました。
授業開始を過去の基準に置き、ノートを開いた出来事はそれより前に置きます。had already opened の後ろに目的語 my notebook が続きます。
練習3の答え: By next March, Yuki will have lived here for four years.
日本語訳: 来年の3月には、ユキはここに住んで4年になります。
未来の基準まで続く状態なので will have lived を使います。four years は長さなので for を置きます。継続の未来完了であり、3月に引っ越すことまで述べてはいません。
練習4の答え: has been running / since
Tom に合わせて has、run の ing 形は n を重ねた running です。nine this morning は走り始めた起点なので since を使います。期間を答えたい場合には、今の時刻も必要になります。
次の単元へのつながりと家庭での確かめ方
次に助動詞と完了形を組み合わせると、「過去にそうしたに違いない」「そうすべきだった」といった判断を表せます。その際も、過去分詞があるから過去完了、と決めないことが必要です。have の前に何があるかを見て、had なのか、will なのか、別の助動詞なのかを読み分ける土台が、今回の学習です。
家庭では5分を2つの確認に分けてみましょう。前半は基本例の中から現在完了・過去完了・未来完了を1文ずつ声に出し、それぞれの基準を「今」「到着時」「金曜日」と日本語で添えます。後半は、例題1の since April を for six months に入れ替えて言い、起点から期間へ何が変わったかを説明します。時期の設定も変わるので、2つが常に同じ事実を表すと思わないことがポイントです。
個別指導で形を選べない場合は、まず主語と have の組み合わせ、過去形と過去分詞の区別まで戻って確かめます。形が作れる場合は、時間軸の基準を本人が指せるか、読んだ順と起きた順を区別できるかを確認します。
まとめ
英文の have や had を見たら、訳語を急いで当てはめる前に、読み手の立つ時点を定めましょう。同じ出来事でも、今の結果として伝えるのか、過去の時点より前の事情として伝えるのかで、選ぶ形が変わります。長い文章でも、その基準が移る箇所を捉えれば、時間の流れを動詞からたどれます。
「終わった」という訳を覚えただけでは、今も続く読書の時間を読めません。完了形を理解する一歩は、出来事に日付を付けることではなく、どの時点までを見渡す文なのかを決めることです。
本気になった日が、入塾の日。
お子様の教育、迷ったら「丸投げ」してください。必ず、期待以上の結果で返します。武蔵野で育む、武蔵境で学ぶ。
電話は年中無休。365日、24時間、お電話可能。




