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

現在・過去・未来を基準にした時間軸の図で、完了形の意味を整理します。空所補充・並べ替え・和文英訳を通して、sinceとforや完了進行形を使い分ける手順を確かめてください。
よくあるのは、通学電車の窓に映る自分を見ながら昨日覚えた英文を思い返し、「宿題を終えた」なら過去形でよいはずなのに、なぜ現在完了も使うのかと考え込む場面です。日本語の「〜した」だけを手掛かりにすると、どちらの形も同じに見えます。違いは、終えた時刻を過去の出来事として伝えるのか、終えた結果として今は済んでいると伝えるのかにあります。
完了形の「完了」という名前から、すべて「終わったこと」だと考える必要はありません。「ずっと住んでいる」「これまでに訪れたことがある」も完了形で表します。まず決めたいのは、話し手がどの時点に立って、それまでの時間を振り返っているかです。そこがつかめると、現在完了から過去完了、未来完了へ形が変わっても、別々の規則を暗記せずに読めます。さらに、続いてきた動作を強調する完了進行形まで使うと、単に勉強した事実だけでなく、今までどのくらい取り組んできたかも伝えられます。
この単元で身につけること
- 現在完了の3用法を、今とのつながりから説明します。完了・結果、経験、継続のどれも、過去だけで話を閉じない点が共通しています。
- 完了形の形を組み立てます。主語に合わせたhaveやhas、その後ろの過去分詞を確かめ、否定文と疑問文にも変えられるようにします。
- 基準時を現在・過去・未来から選びます。基準時とは、そこまでの出来事や状態を振り返る際の目印となる時点です。
- sinceとforを使い分けます。始まった時点を示すのか、続いた期間の長さを示すのかを判断します。
- 完了形と完了進行形を選びます。終えた量や結果を伝えるのか、続けている動作やその長さを伝えるのかを区別します。
前の単元で扱う現在・過去・未来と進行形に、「ある時点までのつながり」という見方を加えるのが、この単元です。用法名を答えるだけで終えず、英文を読んで「いつを基準にしているか」「何がそこまで続くか」を言葉にして確かめましょう。
基本の考え方
現在完了の形と、今に残るつながり
過去形は過去の出来事や状態を述べ、現在完了は過去のことを現在と結びつけて述べます。現在完了の基本形は「主語 + have/has + 過去分詞」です。過去分詞とは、完了形や受け身などで使う動詞の形で、規則動詞なら原形に-edを付け、不規則動詞では動詞ごとの形を使います。
I have finished my homework.(私は宿題を終えました。)
この文では「今は宿題が済んでいる」と伝えています。haveは「持っている」という意味の動詞として訳さず、完了形を作る助動詞、つまり動詞の意味や文の形を助ける語として読みます。主語が三人称単数ならhasを使いますが、過去分詞は主語によって変えません。
Yuki has lost her key.(ユキは鍵をなくしてしまいました。)
これは、なくしたことの結果が今に関わり、通常は「今も鍵が見つかっていない」という意味になります。現在完了の「完了・結果」は、動作が済んだことや、その結果が現在に関わることを表す用法です。なくした時刻そのものより、今困っている状態に目を向けています。
I finished my homework last night.(私は昨夜、宿題を終えました。)
こちらは昨夜という過去の時点の出来事を述べています。今の状況について何も考えていないという意味ではありませんが、文の形として今とのつながりを示してはいません。日本語訳が似ていても、英文が直接述べている時間の範囲を比べることが大切です。
否定文はhave/hasの後ろにnotを置きます。疑問文はhave/hasを主語の前に出し、過去分詞をそのまま残します。過去分詞を過去形に戻したり、doやdoesを重ねたりする必要はありません。
I have not finished my homework yet.(私はまだ宿題を終えていません。)
Have you finished your homework yet?(あなたはもう宿題を終えましたか。)
Yes, I have.(はい、終えました。)
No, I have not.(いいえ、まだです。)
短い答えでも、質問に使われたhaveを受け継ぎます。yetは否定文で「まだ」、疑問文で「もう」を表すのが基本です。一方、alreadyは「すでに」、justは「ちょうど」を表し、通常はhave/hasと過去分詞の間に置きます。
Ken has just arrived.(ケンはちょうど到着したところです。)
ただし、justなどの語だけで機械的に時制を決めるのではなく、文全体の基準時を先に見ます。これらの語は過去完了などでも使われるからです。
現在完了の3用法を時間軸で見る
図1のように、現在完了の3用法はすべて「今」を基準に眺められます。図の点は出来事、帯は続く状態、矢印は出来事と現在の関係を表します。完了・結果の矢印は、同じ動作が今まで続くという意味ではありません。

経験は、今までの間に起きたことを表す用法です。「いつ起きたか」より、「そういう出来事がこれまでにあったか」や「何回あったか」が話題になります。図1の経験の段では2つの点が過去の訪問に当たり、それを現在から数えています。
I have visited this museum twice.(私はこの博物館を2回訪れたことがあります。)
Have you ever made bread?(あなたはこれまでにパンを作ったことがありますか。)
I have never made bread.(私は一度もパンを作ったことがありません。)
everは経験を尋ねるときの「これまでに」、neverは「一度も〜ない」です。never自体に否定の意味があるので、ここにnotを足しません。回数のtwiceやthree timesは、出来事が完了している回数を数えます。
継続は、過去に始まった状態などが今まで続いていることを表す用法です。図1の継続の帯は、過去の開始点から現在の縦線まで届いています。この読み方は、次のような状態を表す動詞で特にはっきりします。
I have known Ken for three years.(私はケンと3年来の知り合いです。)
I have lived here since April.(私は4月からここに住んでいます。)
for three yearsは「3年間」という長さ、since Aprilは「4月から」という開始点です。forの後ろにはtwo hoursやa long timeのような期間を置き、sinceの後ろにはMondayや2020のような時点を置きます。sinceの後ろに主語と動詞を含むまとまりを置き、「ある出来事が起きてから」と言うこともできます。
I have known Ken since I was a child.(私は子どものころからケンを知っています。)
since I was a childのwasは、始まりの時期を過去として示しています。主な内容である「知っている」は現在まで続いているのでhave knownです。文中の動詞を全部同じ時制にそろえるのではなく、それぞれが受け持つ時間を分けて考えます。
基準時をずらす完了形と、動作に注目する完了進行形
過去完了は「主語 + had + 過去分詞」で、過去のある時点を基準にして、それより前の出来事やそこまでの継続を表します。hadはどの主語でも同じ形です。特に、基準となる過去よりさらに前の出来事を表す用法を、大過去と呼びます。
When I arrived at the station, the train had already left.(私が駅に着いたとき、電車はすでに出発していました。)
駅に着いた時点も過去ですが、出発はそれより前です。過去の出来事が2つあるから必ず過去完了にするのではなく、過去の基準時からさらに前を振り返る部分に使います。beforeやafterで順序が十分明らかな場合には、両方を過去形にすることもあります。
By last April, I had lived here for three years.(昨年の4月までに、私はここに3年間住んでいました。)
これは過去完了の継続です。昨年の4月という過去の基準時までの3年間を示しており、今も住んでいるかどうかは、この文だけでは決まりません。現在完了なら現在まで、過去完了なら過去の基準時までという違いが、同じfor three yearsにも現れます。
未来完了は「主語 + will have + 過去分詞」で、未来のある時点までに完了することや、その時点までの経験・継続を表します。未来の目印に立って、そこまでを振り返ると考えましょう。
I will have finished the report by Friday.(私は金曜日までには、そのレポートを仕上げているでしょう。)
By next April, I will have lived here for five years.(来年の4月には、私はここに5年間住んでいることになります。)
If I visit this museum tomorrow, I will have visited it three times.(もし明日この博物館を訪れれば、私はそこを3回訪れたことになります。)
3つ目は未来までの経験を数える文です。現在までに2回訪れたという状況なら、明日の訪問を加えて3回になります。ifで始まる条件を表す部分では、未来のことでもvisitという現在形を使っています。
完了進行形は、ある時点まで動作が続いてきたことを、その動作の過程に注目して表します。形は「have/has been + 動詞の-ing形」で、基準時が過去ならhad been、未来ならwill have beenに変わります。beenはbeの過去分詞なので、完了形の後ろに進行形の仕組みが続いています。
I have been studying for two hours.(私は2時間ずっと勉強しています。)
When Ken called, I had been studying for two hours.(ケンが電話してきたとき、私は2時間ずっと勉強していました。)
By noon, I will have been studying for two hours.(正午には、私は2時間ずっと勉強していることになります。)
現在完了進行形は、今も続く動作だけでなく、ついさっきまで続いていて今に影響がある動作にも使えます。勉強を終えた直後に疲れた理由を述べる場合もあるため、形だけから「この瞬間も必ず勉強中」とは決めません。
I have read three books this month.(私は今月、本を3冊読みました。)
I have been reading this book for an hour.(私はこの本を1時間ずっと読んでいます。)
前者は読み終えた3冊という成果を数え、後者は読む動作が続いてきたことを述べています。後者から本を読み終えたとは判断できません。また、knowのように状態を表し、通常は進行形にしない動詞は、継続を表す場合もhave knownを使います。継続なら必ず完了進行形という規則ではありません。
例題で使い方を確かめる
例題1 現在までの継続を空所に入れる
「ユキは4月からここに住んでいます」という意味になるように、動詞liveを現在完了形にして空所を埋めましょう。現在完了進行形ではなく、現在完了形で答えます。
Yuki ( ) here since April.(ユキは4月からここに住んでいます。)
- 基準時を決めます。「住んでいます」は、4月に始まって今まで続く状態なので、現在を基準にします。
- 主語に合わせて助動詞を選びます。Yukiは三人称単数なので、haveではなくhasを置きます。
- liveを過去分詞livedにします。現在完了の形はhasと過去分詞の組み合わせであり、hasの後ろを原形にはしません。
- since Aprilを確かめます。Aprilは期間の長さではなく始まりの時点なので、sinceと組み合わさります。
答え: Yuki has lived here since April.(ユキは4月からここに住んでいます。)
「4月から」があるので継続だと判断できますが、それだけで過去・現在・未来のどれかは決まりません。日本語の「今まで」に当たる意味も併せて読みます。なお、liveはhave been livingという形でも継続を表せますが、この問題では形を現在完了に指定しています。
例題2 経験の疑問文を並べ替える
次の語をすべて1回ずつ使い、「あなたはこれまでにパンを作ったことがありますか」という疑問文を作りましょう。文頭の語は大文字にし、末尾に疑問符を付けます。
語群: you / bread / ever / have / made
- 聞きたい内容を確かめます。作った日時ではなく、これまでの経験の有無を尋ねています。
- 肯定文の骨格を考えます。「主語 + have + 過去分詞 + 目的語」なので、主語はyou、過去分詞はmade、目的語はbreadです。
- 疑問文に変えます。助動詞haveをyouの前へ移し、madeはその位置に残します。
- everを主語と過去分詞の間に置きます。「これまでに」という意味が、経験を尋ねる文に自然につながります。
答え: Have you ever made bread?(あなたはこれまでにパンを作ったことがありますか。)
並べ替えでは、haveを先頭に置いた後でmadeまで主語の前へ移さないようにします。質問されている動作はmakeですが、疑問文でも過去分詞madeを保つのが完了形です。短い語群ほど日本語の順に当てはめたくなりますが、英語の助動詞と主語の位置を先に決めると安定します。
例題3 2つの過去を空所補充で区別する
次の文で、leaveを過去完了形にして空所を埋めましょう。電車の出発は、私が駅に着くよりも前の出来事です。
When I arrived at the station, the train ( ) already ( ).(私が駅に着いたとき、電車はすでに出発していました。)
- 基準となる出来事を見つけます。When I arrived at the stationが「私が駅に着いたとき」を表し、ここが過去の基準時です。
- 出発の時点を置きます。電車は到着前に出ているので、時間軸では私の到着より左に置きます。
- 過去完了のhadと過去分詞leftを選びます。leaveの過去分詞はleftで、過去形と同じつづりですが、ここではhadと組み合わせる役割です。
- alreadyの位置を確認します。had already leftの順にして、基準時にはすでに出発済みだったと表します。
答え: When I arrived at the station, the train had already left.(私が駅に着いたとき、電車はすでに出発していました。)
図2のように、出発、私の到着、現在という順序を描くと、had leftが何より前なのかを確かめられます。過去完了は「ものすごく昔」という意味ではありません。到着の1分前の出発であっても、過去の到着を基準にして先に済んでいれば、同じ形を使えます。

図2で赤い出発点を青い到着点より右に動かすと、「到着したときにはすでに出ていた」という内容と合わなくなります。形の暗記に加えて、文が表す出来事の順番を説明できるか確かめてください。
例題4 未来の期限から振り返って英訳する
「私は金曜日までには、そのレポートを仕上げているでしょう」を、未来完了形で英訳しましょう。「そのレポート」はthe report、「仕上げる」はfinishを使います。
- 未来の基準時を決めます。「金曜日までには」が目印なので、金曜日の時点から完了を確かめる文です。
- 完了する内容をまとめます。「そのレポートを仕上げる」はfinish the reportで、finishの過去分詞はfinishedです。
- will have finishedを作ります。willの後ろは原形なのでhaveを置き、その後ろに過去分詞を続けます。
- 期限のby Fridayを付けます。byは「その時までには」という期限を示すので、完了を見込む文と合います。
答え: I will have finished the report by Friday.(私は金曜日までには、そのレポートを仕上げているでしょう。)
will finishでも未来の完成を述べられますが、未来完了では金曜日の時点で「もう完成している」という見方が前面に出ます。by Fridayがあるから必ず未来完了、と決めるわけではありません。この問題では、未来完了の視点を練習するために使う形を指定しています。
つまずきやすいところと直し方
過去の日時を指定したまま現在完了にする
× I have finished my homework yesterday.(意図した意味: 私は昨日、宿題を終えました。)
どこが違うか: yesterdayで現在から切り離された過去の日時を指定しているので、この文では現在完了ではなく過去形を使います。
○ I finished my homework yesterday.(私は昨日、宿題を終えました。)
yesterday、last night、two days agoのように過去の時を特定する表現は、この使い方の現在完了とは組み合わせません。ただし、過去を示す語が文中にあればすべて駄目ということではありません。since yesterdayなら「昨日から今まで」と現在へつながる範囲を作るので、現在完了と一緒に使えます。
I have been busy since yesterday.(私は昨日からずっと忙しいです。)
this weekのような表現も、今週がまだ続いている時間の範囲として扱われるなら、現在完了と使えます。語に丸印やばつ印を付けて覚えるより、過去の一点を指定して話を閉じるのか、現在までの範囲を取るのかを確かめましょう。
sinceの後ろに期間の長さを置く
× I have known Ken since three years.(意図した意味: 私はケンと3年来の知り合いです。)
どこが違うか: three yearsは始まりの時点ではなく3年間という長さなので、sinceではなくforを使います。
○ I have known Ken for three years.(私はケンと3年来の知り合いです。)
since three years agoなら、three years ago全体が「3年前」という開始点を表すため使えます。for three yearsとsince three years agoは同じ長さの関係を表せますが、後ろに置いた語の働きが違います。また、forは過去形でも期間を表すので、forがあるだけで現在完了にするのは早計です。
I lived there for three years.(私はそこに3年間住んでいました。)
この文は過去の居住期間を述べています。have lived hereなら今までの居住を、had lived hereなら過去の基準時までの居住を示せるように、forは長さを担当し、時制はどこまでの話かを担当します。
完成の期限をuntilで表す
× I will have finished the report until Friday.(意図した意味: 私は金曜日までには、そのレポートを仕上げているでしょう。)
どこが違うか: finishで表す完成の期限を示したいので、継続の終点を示すuntilではなくbyを使います。
○ I will have finished the report by Friday.(私は金曜日までには、そのレポートを仕上げているでしょう。)
図3のように、by Fridayでは完成が金曜日の期限以前に位置します。図中の完了点は期限より前に置いていますが、期限ちょうどの完成もbyの範囲に含まれます。図3の点の位置は一例で、必ず木曜日に終えるなどと細かい日時まで指定する表現ではありません。

I will work on the report until Friday.(私は金曜日までそのレポートに取り組むつもりです。)
こちらは取り組む動作を金曜日まで続けるという意味で、金曜日に完成するかどうかまでは述べていません。日本語の「まで」を見たら、「までには済む」なのか「まで続く」なのかを一度言い直すと、byとuntilを選べます。単に前置詞だけを交換するのでなく、動詞が表す動作との組み合わせで判断しましょう。
練習問題
答えを見る前に、各問の基準時と、形を決める根拠を短く書きましょう。英文が組み立てられても、なぜその形を選んだか説明できない場合には、基準時と出来事の順番を見直します。
練習1 経験を表す現在完了
visitを現在完了形にして、空所を埋めましょう。
Emma ( ) this museum twice.(エマはこの博物館を2回訪れたことがあります。)
練習2 過去の基準時までの継続
liveを過去完了形にして、空所を埋めましょう。
By last April, I ( ) here for three years.(昨年の4月までに、私はここに3年間住んでいました。)
練習3 未来の基準時までの継続
「来年の4月には、私はここに5年間住んでいることになります」を、liveの未来完了形を使って英訳しましょう。「来年の4月には」はBy next Aprilで始めます。
練習4 動作の継続を並べ替える
次の語句をすべて1回ずつ使い、「私は2時間ずっと勉強しています」という文を作りましょう。文末にピリオドを付けます。
語群: studying / I / for two hours / been / have
答えと解説
練習1の答え: Emma has visited this museum twice.(エマはこの博物館を2回訪れたことがあります。)
現在までに2回の訪問経験があり、主語が三人称単数なのでhas visitedです。twiceは回数を表し、過去の特定の日時を指定してはいません。hasとvisitedの両方を書けているか確認します。
練習2の答え: By last April, I had lived here for three years.(昨年の4月までに、私はここに3年間住んでいました。)
基準時は昨年の4月で、そこまで続いた居住をhad livedで示します。現在まで続くとは書かれていないため、hasやhaveに置き換えると基準時が合わなくなります。for three yearsは過去の基準時からさかのぼって数えます。
練習3の答え: By next April, I will have lived here for five years.(来年の4月には、私はここに5年間住んでいることになります。)
未来の4月を基準にして、それまでの居住期間を述べています。willの後ろをhaveにし、さらにliveを過去分詞livedにする2段階を確かめましょう。今から5年住むという意味ではなく、来年の4月に通算5年になるという意味です。
練習4の答え: I have been studying for two hours.(私は2時間ずっと勉強しています。)
現在まで続く勉強の動作に注目するので、have been studyingという現在完了進行形になります。beenを落とすと完了形と進行形をつなげられません。語群を並べ終えたら、have、been、studyingの順を指で追って確認してください。
次の単元へのつながりと家庭での確かめ方
次に学ぶ助動詞の表現では、助動詞にhaveと過去分詞が続く形が出てきます。そのときも、過去分詞までをひとまとまりとして読み、いつの出来事について述べているかを確かめる力が役立ちます。受け身でもbeenが現れるため、beenの後ろが-ing形なのか過去分詞なのかを見分ける習慣を付けておきましょう。
家庭で5分使えるなら、最初の2分では例題3を声に出し、紙に出発、到着、現在の3点を置きます。日本語訳を隠して、had leftがどの点に当たるか説明してください。残りの3分では練習2と練習3を声に出して比べ、lastをnextに変えることで基準時と動詞の形がどう変わるか確かめます。期間も3年から5年へ変わっているので、時間軸のどの幅を読んでいるかまで指し示すと確実です。
個別指導で答えが止まった場合は、まず過去分詞を作れないのか、基準時を決められないのかまで戻って確かめます。保護者がお子さまに声をかけるときも、用法名を急いで聞くより、「どの時点から振り返っているの」と尋ねると、迷っている箇所が見えやすくなります。
まとめ
完了形を選ぶ場面では、日本語の語尾より先に、英文の話し手が立つ時点を決めてください。そこから前を見て、済んだことを伝えるのか、経験を数えるのか、続いた時間を測るのかを考えると、一つひとつの語の役割が定まります。答えを直す際には動詞だけを書き換えず、基準時の印も一緒に動かしてみましょう。
通学電車の窓を見ながら思い出した「宿題を終えた」も、昨夜の出来事を語る場合と、今は済んでいると伝える場合に分けられます。完了形の正解は、過去分詞を選んだところではなく、その文がどの時点までを語るか説明できたところで確かになります。
本気になった日が、入塾の日。
お子様の教育、迷ったら「丸投げ」してください。必ず、期待以上の結果で返します。武蔵野で育む、武蔵境で学ぶ。
電話は年中無休。365日、24時間、お電話可能。




