
武蔵野個別指導塾の特徴
【中3英語】現在完了(継続)を図解で総まとめ—have+過去分詞と since・for|武蔵野個別指導塾

過去から今まで続く時間を、時間軸と語順の図で整理します。since・forの選び方、How longの疑問文、現在完了進行形まで、空所補充や並べ替えの例題で確かめましょう。
よくあるのは、塾の自習室の白板の前で「私は3年間ここに住んでいます」を英語にしようとして、liveのままでよいのか、livedにするのか迷う場面です。「住み始めたのは過去だから過去形かな」と思う一方で、「今も住んでいるのだから現在形かな」とも考えられます。どちらの考えにも、文の大事な一部分が含まれています。この文で伝えたいのは、過去の出発点と今の状態をひと続きにした内容です。
そのつながりを表すのが、現在完了の継続用法です。「ずっと知っている」「朝から忙しい」「1時間ずっと勉強している」など、今まで続いてきたことを伝えられます。haveが入っていても、持ち物の話とは限りません。まず時間の流れをつかみ、次にhaveや過去分詞の役割を確かめると、語順にも理由が見えてきます。「いつから」と「どのくらい」を区別するところから、一つずつ組み立てていきましょう。
この単元で身につけること
- 現在完了の形を作ります。主語に合うhaveまたはhasの後ろに過去分詞を置き、過去から今へのつながりを表します。
- 継続の意味を読み取ります。「ずっと〜している」という訳だけで覚えず、始まった時点と今も続く状態の両方を確かめます。
- sinceとforを使い分けます。sinceの後ろには始まりの時点、forの後ろには続いた期間を置きます。
- How longで長さを尋ねます。haveやhasを主語の前へ動かしてから、文の先頭にHow longを置きます。
- 過去形と現在完了進行形を比べます。過去の期間として述べるのか、今まで続く動作に目を向けるのかを判断します。
前の単元で学んだ前置詞、つまり名詞などの前に置いて時や場所などの関係を表す語のうち、期間を示すforがここでも役立ちます。また、受け身で使った過去分詞も登場しますが、前に置く語と文全体の意味が変わります。形が似ているところと、時間の捉え方が違うところを分けて見るのが出発点です。
基本の考え方
過去の始まりから今へ線をつなぐ
現在完了は、過去のことを現在と結びつけて表す形です。そのうち継続用法は、過去に始まった状態などが今まで続いていることを表します。基本の形は「主語 + haveまたはhas + 過去分詞」です。主語は「だれが・何が」に当たる部分で、過去分詞は完了形や受け身などに使う動詞の形です。過去分詞という名前に「過去」があっても、それだけで文全体が過去形になるわけではありません。
I have lived here for three years.(私は3年間ずっとここに住んでいます。)
この文では、3年前に住み始め、今もここに住んでいます。liveの過去分詞はlivedです。liveのように、過去形と過去分詞が同じつづりになる動詞もあります。そのため、livedだけを見て判断せず、前にhaveがあるか、文が今までのつながりを表しているかを確かめます。
図1のように、継続は始まりの点から「今」まで届く線で考えられます。線の右端を今に合わせることが大切で、これから先に何年住むかまで、この文が決めているわけではありません。

I live here.(私はここに住んでいます。)
現在形のこの文は、今の住まいについて述べています。いつ住み始めたかや、どれだけ長く住んでいるかは示していません。一方、現在完了の文には「過去からここまで続いてきた」という見方があります。日本語ではどちらも「住んでいます」と訳せるので、日本語の語尾だけで選ばないようにしましょう。
I lived here for three years.(私はここに3年間住んでいました。)
過去形のこの文は、3年間を過去の期間として述べています。この文だけでは、今まで住み続けていることを表しません。ただし、過去形そのものに「今は絶対に住んでいない」という意味が含まれている、と決めつける必要もありません。今も続くことまで伝えたい場面では、現在完了を選ぶ、という使い分けを押さえます。forがあるだけで現在完了になるのではなく、期間が今とつながっているかが判断の基準です。
have・hasと過去分詞を組み合わせる
主語がI、you、we、theyや複数の人・物ならhaveを使います。主語がhe、she、itやKenなど、Iとyou以外の単数ならhasを使います。この区別を三人称単数といいます。主語に合わせて形を変えるのはhaveの部分で、後ろの過去分詞にsを付けるわけではありません。
She has lived here for three years.(彼女は3年間ずっとここに住んでいます。)
We have known Ken for five years.(私たちは5年間ずっとケンと知り合いです。)
knowは「知っている」という状態を表し、過去形はknew、過去分詞はknownです。規則的にedを付ける動詞とは違い、このような動詞は形を個別に覚えます。know、knew、knownの3つを並べ、現在完了では3つ目を使うと確かめましょう。意味を理解していてもknewを置くと、必要な形になりません。
Emma has been busy since this morning.(エマは今朝からずっと忙しいです。)
be動詞の過去分詞はbeenです。「忙しい」のbusyは様子を表す形容詞なので、busyだけをhaveの後ろに置くことはできません。「忙しい状態である」というbe動詞を使い、その過去分詞をhasの後ろに置きます。ここでのbeenはbusyとつながっており、後で出てくるbeen + ingとは文の作りが違います。
否定文では、haveまたはhasの直後にnotを置きます。have notはhaven’t、has notはhasn’tと短くできます。現在完了のhaveは、文の形を支える助動詞として働きます。助動詞とは、動詞と組み合わさって意味や文の形を助ける語です。持ち物を表す一般動詞のhaveとは役割が違うため、ここではdoやdoesを付けません。
I haven’t seen Ken for two weeks.(私は2週間ずっとケンに会っていません。)
この文では、「会っていない」という状態が今まで2週間続いています。否定文でも、どの状態が今まで続くのかを考えると意味を取りやすくなります。seeの過去分詞はseenで、notが入っても過去分詞の形は変わりません。
Have you lived here for three years?(あなたは3年間ずっとここに住んでいますか。)
Yes, I have.(はい、住んでいます。)
No, I haven’t.(いいえ、そうではありません。)
疑問文はhaveまたはhasを主語の前に出します。答えるときもhaveやhasを使い、doやdoesに戻しません。また、この問いへのNoは「3年間住んでいる」という内容を否定しています。ここに住んでいても、まだ1年ならNoで答えられます。何について尋ねられたかまで読んでから返事を考えましょう。
sinceは始まり、forは長さ
sinceは「〜以来」、forは「〜の間」を表します。数字の有無ではなく、その後ろが始まりの時点なのか、時間の長さなのかで選びます。since 2022なら「2022年から」、for four yearsなら「4年間」です。どちらにも数字がありますが、数字が表しているものは違います。
I have lived here since 2022.(私は2022年からずっとここに住んでいます。)
I have known Yuki for a long time.(私は長い間ずっとユキと知り合いです。)
期間はthree yearsのような具体的な長さだけでなく、a long timeのような表現でも構いません。sinceの後ろには、this morningやMondayのような時点も置けます。図1でいえば、左端の点を説明するのがsince、左端から今までの線の長さを説明するのがforです。
I have known Yuki since I was ten.(私は10歳のときからずっとユキと知り合いです。)
sinceの後ろには「主語 + 動詞」を含む文も置けます。この例のI was tenは「私が10歳だった」という過去の始まりを示します。全体のhave knownは今までの継続、sinceの後ろのwasは始まりとなった過去を担当しています。同じ英文の中に現在完了と過去形があっても、役割が違うので矛盾しません。
例題で使い方を確かめる
例題1 主語に合わせて空所を埋める
「ケンは2年間ずっとここに住んでいます」になるように、次の空所に適切な語を入れましょう。liveは必要な形に直します。
Ken ( ) ( ) here for two years.(ケンは2年間ずっとここに住んでいます。)
- 日本語の「2年間ずっと」と「住んでいます」を結びつけます。過去に住み始め、今も住んでいるので、現在完了の継続を使います。
- 主語のKenを確かめます。Kenは1人で三人称単数なので、最初の空所にはhasが入ります。
- liveを過去分詞のlivedにします。hasの後ろに必要なのは過去分詞なので、liveのままにも、livesにもしません。
for two yearsは長さを表すまとまりです。このまとまりを先に読めても、haveとhasの選択は主語を見ないと決まりません。「意味で現在完了を選ぶ」「主語でhasを選ぶ」「動詞を過去分詞にする」と、判断を分けると取り違えを減らせます。
答え: Ken has lived here for two years.(ケンは2年間ずっとここに住んでいます。)
例題2 sinceとforを意味で選ぶ
「エマは今朝からずっと忙しいです」になるように、空所にsinceかforを入れましょう。
Emma has been busy ( ) this morning.(エマは今朝からずっと忙しいです。)
- 空所の後ろのthis morningをひとまとまりで読みます。「今朝」は忙しくなった始まりの時点として示されています。
- 時点から今までのつながりを表すsinceを選びます。何時間という長さを示しているわけではないので、forにはしません。
- has been busyの形も確かめます。Emmaに合うhasと、be動詞の過去分詞beenがあり、今も忙しい状態が続く文になっています。
「朝」は時間に関係する言葉だからfor、と選ぶのは早すぎます。たとえば「3時間」なら長さですが、「今朝」は出発点です。日本語でも「今朝から」と「3時間の間」を言い比べると、後ろの言葉が担う役割を確かめられます。sinceやforを単独で暗記せず、後ろのまとまりとセットにして読みましょう。
答え: Emma has been busy since this morning.(エマは今朝からずっと忙しいです。)
例題3 How longの疑問文を並べ替える
「あなたはどのくらいの間ここに住んでいますか」になるように、次の語句を並べ替えましょう。すべて1回ずつ使い、文末に疑問符を付けます。
語句: here / you / How long / lived / have
- 長さを尋ねるHow longを文の先頭に置きます。これは「いつから」という特定の時点ではなく、続いている時間の長さを尋ねる表現です。
- 現在完了の疑問文の順に、have、主語のyouを続けます。疑問文でも過去分詞は残すので、その後ろにlivedを置きます。
- 場所を表すhereを続け、疑問符で終えます。聞きたい期間の位置にはfor three yearsなどを置かず、相手が答えられる形にします。
図2のように、「How long」「have」「you」「lived」「here?」と箱を順に読むと、疑問詞の後ろが疑問文の語順になっていることを確かめられます。How longの後ろをyou haveの順にしないよう、haveとyouの位置を見比べましょう。

How long has she lived here?(彼女はどのくらいの間ここに住んでいますか。)
主語をsheに替える場合は、主語の前のhaveがhasになります。疑問文になるとhaveが主語から離れるため、主語との対応を見落としがちです。先頭から読むだけでなく、hasとsheをひと組として確認しましょう。
I have lived here for three years.(私は3年間ずっとここに住んでいます。)
How longの問いには、このように期間を含む文で答えられます。会話ではFor three years.(3年間です。)と短く答えても構いません。Since 2022.(2022年からです。)のように出発点を示す答え方もできます。長さを尋ねられたからといって、sinceの答えが使えないわけではありません。
答え: How long have you lived here?(あなたはどのくらいの間ここに住んでいますか。)
例題4 続いている動作を英語にする
「私は1時間ずっと英語を勉強しています」を、今もその勉強を続けている場面として英語にしましょう。studyを使い、現在完了進行形で表します。現在完了進行形は「haveまたはhas + been + 動詞のing形」で、過去から今まで続いている動作を表す形です。
- 「1時間前に始め、今も勉強している」というつながりを読み取ります。動作を続けていることに目を向けるので、have been studyingを使います。
- 主語がIなのでhaveを選びます。その後ろにbeenを置き、studyをstudyingにします。studyのing形ではyをiに変えません。
- 「英語を」に当たるEnglishと、長さを表すfor an hourを続けます。hourは最初のhを発音せず、母音の音で始まるためanを使います。
I am studying English now.(私は今、英語を勉強しています。)
現在進行形のこの文は、今している動作を示します。それに対して、現在完了進行形は「始めてから今まで」の長さを含めて動作を捉えます。どちらも日本語では「勉強しています」になりやすいため、「今の最中」だけを言いたいのか、「ここまで続けている」ことを言いたいのかを補って考えます。
答え: I have been studying English for an hour.(私は1時間ずっと英語を勉強しています。)
つまずきやすいところと直し方
過去形を過去分詞の位置に置いてしまう
× I have knew Ken for five years.(意図した意味: 私は5年間ずっとケンと知り合いです。)
どこが違うか: haveの後ろには過去形のknewではなく、過去分詞のknownを置きます。
○ I have known Ken for five years.(私は5年間ずっとケンと知り合いです。)
日本語の意味を先に思い浮かべられても、不規則動詞の形を取り違えることがあります。liveは過去形も過去分詞もlivedなので、形の違いが見えません。knowのように異なる動詞で、「過去に知ったからknew」ではなく「haveの後ろだからknown」と確かめる練習が必要です。動詞を覚えるときには、元の形・過去形・過去分詞を順に言い、そのうえでhave knownまで声に出すと、文の中で使う形につなげられます。
forとsinceを数字だけで選んでしまう
× I have lived here since three years.(意図した意味: 私は3年間ずっとここに住んでいます。)
どこが違うか: three yearsは始まりの時点ではなく期間なので、sinceをforに直します。
○ I have lived here for three years.(私は3年間ずっとここに住んでいます。)
図3のように、sinceは線の左端の始まり、forは線全体の期間に対応します。three yearsをそのまま「いつ」と答えることはできませんが、「どのくらい」と尋ねられれば答えられます。迷ったときは、後ろの語句だけを読んで「いつからか」「どのくらいか」と問い直しましょう。

three years agoは「3年前」という過去の時点です。ただし、agoを付ければ現在完了の文末へ何でも置ける、ということではありません。「3年前にここに引っ越した」と過去の出来事を述べるなら、次のように過去形を使います。始まった出来事と、そこから続く状態とを分けて述べると、時の表現を整理できます。
I moved here three years ago.(私は3年前にここへ引っ越しました。)
I have lived here for three years.(私は3年間ずっとここに住んでいます。)
上の文は引っ越した出来事、下の文は今まで住んでいる状態に焦点があります。yesterdayやlast yearのように、今から切り離した過去の出来事の時を直接示す語句があるときも、通常は過去形で述べます。一方、since last yearなら「去年から今まで」という始まりを示せるため、現在完了と組み合わせられます。単語だけでなく、sinceを含むまとまりとして見ましょう。
状態を表すknowまで進行形にしてしまう
× I have been knowing Ken for five years.(意図した意味: 私は5年間ずっとケンと知り合いです。)
どこが違うか: 「知っている」という状態を表すknowは通常進行形にせず、have knownを使います。
○ I have known Ken for five years.(私は5年間ずっとケンと知り合いです。)
日本語に「ずっと」があるから必ずhave been + ingにする、とは考えません。knowやlikeなどの状態を表す動詞では、基本的に現在完了の形で継続を表します。一方、studyやwaitなどの動作を続けている場面では、現在完了進行形がよく使われます。日本語訳の見た目よりも、その動詞が何を表すかを確かめましょう。
She has been waiting here for twenty minutes.(彼女は20分間ずっとここで待っています。)
I have been living here for three years.(私は3年間ずっとここに住んでいます。)
liveではhave livedとhave been livingの両方が使えます。後者は住み続けていることに目を向けた言い方です。「継続はすべて進行形」「現在完了と現在完了進行形は必ず違う訳になる」と覚えると、自然な英文を誤りだと思ってしまいます。まずは状態のknowと動作のstudyで基本の違いをつかみ、liveのように両方使える動詞もあると押さえます。
練習問題
練習1
「トムは先週の月曜日からずっと忙しいです」になるように、空所を埋めましょう。beは必要な形に直します。
Tom ( ) ( ) busy ( ) last Monday.(トムは先週の月曜日からずっと忙しいです。)
主語と合うhaveの形、beの過去分詞、始まりを示す語をそれぞれ判断します。一つの空所を埋めたら、次の空所も同じ理由で埋まると思わず、役割を分けて考えましょう。
練習2
「あなたはどのくらいの間ユキと知り合いですか」になるように、次の語句を並べ替えましょう。すべて1回ずつ使い、文末に疑問符を付けます。
語句: known / you / How long / Yuki / have
まず長さを尋ねる語句を決め、次にhaveと主語の位置を決めます。最後に、knowの過去分詞が正しく残っているかを確かめてから、文全体を読みましょう。
練習3
「私は30分間ずっとここで待っています」を、今も待ち続けている場面として、現在完了進行形で英語にしましょう。waitとhereを使います。時間の長さはthirty minutesで表してください。
動詞のing形だけでなく、その前に必要な2語も考えましょう。「30分間」は期間なので、数字の前に置く語も自分で選びます。
練習4
次の2つの日本語を英語にしましょう。どちらもliveとhereを使います。後半のfor two yearsは共通に使えます。
A: 私は2年間ずっとここに住んでいます。
B: 私はここに2年間住んでいました。
Aは今も住んでいる場面、Bは以前の住まいを過去の期間として説明する場面です。同じ期間の語句を使いながら、今とのつながりをどの部分で表すかを考えましょう。
答えと解説
練習1の答え: Tom has been busy since last Monday.(トムは先週の月曜日からずっと忙しいです。)
Tomは三人称単数なのでhas、beの過去分詞はbeenです。last Mondayは始まりの時点なのでsinceを使います。has beenの後ろは形容詞のbusyで、ing形ではありません。この文は現在完了進行形ではなく、忙しい状態の継続を表す現在完了です。
練習2の答え: How long have you known Yuki?(あなたはどのくらいの間ユキと知り合いですか。)
How longの後ろはhave、主語you、過去分詞knownの順です。疑問文にしてもknownをknowやknewに戻しません。また、knowは状態を表すので、この意味ではknowingを使わないことも一緒に確かめます。
練習3の答え: I have been waiting here for thirty minutes.(私は30分間ずっとここで待っています。)
主語Iに合わせてhaveを選び、been、waitingと続けます。thirty minutesは期間なのでforを付けます。haveとwaitingがあっても、その間のbeenが抜けると現在完了進行形の形になりません。
練習4の答えA: I have lived here for two years.(私は2年間ずっとここに住んでいます。)
練習4の答えB: I lived here for two years.(私はここに2年間住んでいました。)
Aは過去から今までの継続をhave livedで表し、Bは過去の期間としてlivedで述べます。AにはI have been living here for two years.(私は2年間ずっとここに住んでいます。)という答えも使えます。期間のforだけでは時制は決まらず、今とのつながりをどう伝えるかで形を選びます。時制とは、現在や過去など、文で時間を表す仕組みのことです。
次の単元へのつながりと家庭での確かめ方
現在完了には、継続のほかに「したことがある」という経験や、「したところだ」という完了などを表す使い方があります。次の単元でもhaveまたはhas + 過去分詞という形は共通です。形だけで継続と決めず、期間を表す語句や話の流れから、過去と今がどうつながっているかを読む力が役立ちます。
家庭では5分を2つの確かめ方に分けてみましょう。前半は、例題3の問いと3年間という答えを声に出します。英文を見ずに言ってみて、haveと主語の順や、答えのforが抜けていないかを本文に戻って確認します。後半は、例題1のKenをIやTheyに替え、hasがhaveに変わることを口と手の両方で確かめます。答えを丸ごと覚えるだけでなく、何を替えたからどこが変わったかを一言添えると、理解の位置が見えます。
保護者の方がお子さまと確かめるときは、「始まりはどこで、今も続いているの」と尋ねるだけでも、英文を選んだ理由を聞けます。個別指導では、sinceとforの選択が難しければ時点と期間の違いへ、has beenの形が難しければ主語とbe動詞の文へ戻って確認します。過去分詞の暗記と時間の理解を分け、止まっている部分から組み立て直します。
まとめ
白板の前でliveかlivedかに迷ったときは、まず「ここに住み始めた点」と「今」を線で結んでみましょう。その線を英文にするためにhaveやhasを置き、過去分詞を続けます。始まりを言うならsince、長さを言うならforという選択も、描いた線から説明できます。正解を選べた後には、過去形に替えると何が変わるのかまで言葉にしてみましょう。継続の現在完了を選ぶ根拠は、「ずっと」という訳語ではなく、過去から引いた線が今に届いていることです。
本気になった日が、入塾の日。
お子様の教育、迷ったら「丸投げ」してください。必ず、期待以上の結果で返します。武蔵野で育む、武蔵境で学ぶ。
電話は年中無休。365日、24時間、お電話可能。




