現在完了形とは
現在完了形とは、「過去との繋がりを示唆しつつ現在を述べる」表現技法。その意味には多く分けて「経験」「継続」「完了」の3つがあります。なお、完了形は以下の形で作られますが、完了形がどの用法で使われているかを示す副詞句を伴うのが通常です。
文法名 | 文種 | その形 | 例文 |
---|---|---|---|
現在完了 | 肯定文 | 主語 + have (has) +過去分詞… . | ・I have said it before. (私はそれを前に言ったことがある) |
※完了形の「have」は助動詞と同じルールで疑問形・否定形を作る。なお、主語が三人称の時は「has」に変化する。
※用法を示すための副詞句は青字標記。ここでは経験を示唆する「before(以前に)」がある。詳しくは、後述。
現在完了形と過去形の違い
完了形と過去形の違いを理解するため、以下の例文を見ていきます。上で触れた通り、完了形は「have + 過去分詞」で成立しますが、単独で用いるとどの用法か曖昧になってしまいます。そこで今回の例文には、「継続用法」だと示す副詞句を追加しています。
◆現在完了と過去形
①現在完了: He has liked her for six years.(彼は6年間ずっと彼女が好きです)
②過去形 : He liked her six years ago. (彼は6年前彼女が好きだった)
※「for six years」と「six years ago」は動詞「like」を補足説明する副詞句
①は現在完了の文です。この文では「for six years」という副詞から、継続用法であると分かります。また、現在完了はあくまで現在の状態を述べる文法。ここでの6年間とは現在に至るまでの6年間を指しているため、彼は今でも彼女が好きと分かります。
一方、②の文は過去形。過去形は、過去の一時点の状態を述べる文法です。この文からは、彼が6年前は彼女が好きだったと分かりますが、今の気持ちは分かりません。もしかすると今でも好きかもしれませんが、既に興味を失っているかもしれないのです。
現在完了形の意味・訳し方
現在完了形には3つの用法があり、それぞれで訳し方が異なります。現在完了を作る形自体は3つの用法で共通ですが、伴う副詞句には違いがあります。そのため、「この副詞句があるからこの用法」というように、副詞句から用法を見抜ける場合が多いです。
用法 | 形 | 意味 | ペア副詞の例 | 例文 |
---|---|---|---|---|
継続 (※) | have (has) + 過去分詞 | (継続して) ~している | ・since(~時点から) ・for(~の間) ・all day(一日中) ・how long (どのくらいの期間) ・how many hours (何時間の間) | ・He has lived in Tama since he was a kid. (彼は子供のころから多摩に住んでいる) ・I have known him for six years. (私は彼を知って6年になる=6年知っている) ・How long has he liked you? (彼はどのくらいの間、君を好きでいるの?) |
完了 | ~した ところだ | ・just(ちょうど) ・now(今) ・yet (否定=まだ、疑問=もう) ・already (肯定=既に、疑問=もう) ・recently(最近) ・lately(最近) | ・I have just recognized my feelings. (私はちょうど自分の気持ちに気づいた所だ) ・She hasn’t told it to him yet. (彼女はまだそれを彼に伝えていない) ・He has already achieved his goal. (彼は既に自分の目標を達成している) ・I haven’t met him recently. (私は最近、彼に会っていない) | |
経験 | ~したこと がある | ・before(以前に) ・once(1回) ・twice(2回) ・times(~回) ・never(決して~ない) ・so far(これまで) ・until now(これまで) ・ever (疑問文で「これまで」) ・how many times (疑問文で「何回」) | ・I have never known how precious he is. (私は彼がどれだけ大事か気づいていなかった) ・He has confessed his love to me before. (彼は私への好意を明かしたことがある) ・How many times has he ever tried? (彼はこれまで何回挑戦したのですか?) ・I have been said it twice.※受動態 (私はそれを言われたことが2回ある) ・Have you ever accepeted his feelings? (君は、彼の告白を受け入れたことがある?) ・She has not done it so far. (彼女はこれまでの所、それをしたことがない) |
※経験を表す表現「have been to A = Aに行ったことがある」は超頻出。また、「have gone to A = Aへ行ってしまった」との使い分け問題も多い。なお、「have been to A」は「~へ行ってきたところです」という完了を表すこともある。
大事なのは丸暗記ではなく、使って、使って、使いまくること。英会話での実践が一番ですが、フレーズを毎日口にし続ける、も効果アリですよ!
現在完了形と一緒に使えない表現
現在完了形は現在を表現する文法なので、原則的には過去を表す表現と一緒に使うことができません。過去を表す表現には「yesterday(昨日)」や「~ ago(~前)」などがあります。ただし、「since」で起点を表す場合、過去表現(文・単語)を続けてOKです。
表現 | 意味 | 例文 | 併用 |
---|---|---|---|
yesterday | 昨日 | ・例文無し (過去表現と現在完了形とは併用できない) | × |
~ ago | ~前 | ||
last A | 前の A (曜日、週、月など) | ||
in A | A 年に | ||
when + 過去文 | (過去文)だったとき | ||
since | ~以来、~から | I have lived here since I was a kid. (私は子供のころからここに住んでいる) 「since」は、過去の一地点からの起点を表すので、 「since」の後ならば過去表現を続けてもよい。 | 〇 |
現在完了形の肯定・否定・疑問文
現在完了形の肯定文、否定文、疑問文の作り方をそれぞれ見ていきます。なお、現在完了形の「have」は助動詞と考えられ、否定・疑問文を作る際は助動詞のルールに従います。
文法名 | 文種 | その形 | 例文 |
---|---|---|---|
現在完了 | 肯定 | 主語 + have (has) + 過去分詞 … . | ・I have said it before. (私はそれを前に言ったことがある) |
否定 | 主語 + have(has) + not + 過去分詞 … . | ・He hasn’t done his homework yet . (彼はまだ宿題を終わらせていない) | |
疑問 | Have (Has) + 主語 + 過去分詞 …? | ・Have you ever been to Japan? (君は日本に行ったことがありますか?) |
※完了形の「have」は助動詞と同じルールで疑問形・否定形を作る。なお、主語が三人称の時は「has」に変化する。
※用法を示すための副詞句は青字標記。
現在完了形の肯定文の作り方
現在完了形は、「have / has +過去分詞」の形で作れます。現在完了形には「経験」「完了」「継続」の3つの意味がありますが、どの用法でも「have/has + 過去分詞」の形は変わりません。そのため、まずはこの形の扱いに慣れることが大切になります。
文種 | その形 | 例文 |
---|---|---|
肯定文 | 主語 + have (has) + 過去分詞 … . | ・I have played the video game before. (私は以前、そのテレビゲームをやったことがある) |
※用法を示すための副詞句は青字標記。
◆現在完了形の肯定文の例文
現在完了は「 have / has+過去分詞」という形で表せます。以下の例文も含め、何度も音読して体に馴染ませ、わざわざ考えなくても完了形が口から出てくるようにしましょう。なお、現在完了がどの用法で使われているかは、文中の副詞句で判断できる場合が多いです。
① I have done it before.(私はそれをやったことがあります)
② She has just gone to the bank.(彼女はちょうど銀行へ行ってしまった)
③ I have lived in Hokkaido since I was born.(私は生まれてからずっと北海道に住んでいる)
※①は「before」から「経験」、②は「just」から「完了」、③は「since」から「継続」と判断できた
現在完了形の否定文の作り方
現在完了形の「have / has」の後ろに「not / never」を置くと否定文を作れます。なお、これは現在完了形がどの用法を取っていても共通するルールです。また、「have / has」の否定形には短縮形も存在し、それぞれ「haven’t / hasn’t」となります。
文種 | その形 | 例文 |
---|---|---|
否定文 | 主語 + have (has) + not / never +過去分詞 … . | ・He has already said it to me. (彼はすでに私にそれを言った) ・I have not replied yet. (私はまだ返事をしていない) |
※現在完了形を「完了」の意味で使う時、肯定文では「already(既に)」、否定文では「yet(もう)」が頻出。
※用法を示すための副詞句は青字標記。
◆現在完了形の否定文の例文
現在完了形の否定形を作る場合は、「have / has」の後ろに「not」を置くだけでOK。このルールは、助動詞のルールと同じなのでシンプルに考えよう。否定語には「not」を置くのが一般的ですが、否定の意味を強めたいときは「never」を使うこともできます。
① I have already finished my homework.(私は既に宿題を終わらせました)
→ I have not finished my homework yet.(私はまだ宿題を終えていません)
② She has been to Japan before.(彼女は日本に行ったことがあります)
→ She has never been to Japan before.(彼女は一度も日本に行ったことはありません)
③ He has lived in Kyoto for ten years.(彼は京都に10年間住み続けています)
→ He has not lived in Kyoto for ten years. (彼はここ10年京都に住んではいません)
現在完了形の疑問文の作り方と答え方
完了を表す「have / has」を文頭に出すことで疑問文を作れます。また、その疑問文に対する返答は「Yes, 主語 have (has) 」または「No, 主語 haven’t (hasn’t) 」です。ただし、「How long」など疑問詞から始まる文には、「Yes/No」ではなく具体的に答えます。
その形 | 答え方 | 例文 |
---|---|---|
Have (has) + 主語 +過去分詞 … ? | Yes, 主語 have/has. No, 主語 haven’t/hasn’t. | ・Has he ever been to Korea? (彼はこれまで韓国に行ったことがある?) → Yes, he has. (はい、あります) → No, he hasn’t.(いえ、ないです) ・How long have you been here? (君はどの位の間、ここにいるの?) → I’ve been here for two hours. (私はここに2時間前からいます) |
※用法を示すための副詞句は青字標記。
◆現在完了形の疑問文の例文
現在完了形の疑問文では、「have / has」が文頭に出ます。このルールも、通所の助動詞と同じです。疑問文では「ever」で経験を問う文、「yet(もう)」と「already(もう)」で完了を問う文、そして「how long」で継続を問う文が超頻出ですね。
① She has been to Japan twice.(彼女は2回日本に行ったことがあります)
→ Has she ever been to Japan?(彼女はこれまで日本に行ったことがありますか?)
② He has just arrived at the airport.(彼はちょうど空港に着いたところです)
→ Has he arrived at the airport yet?(彼はもう空港に着きましたか?)
③ I have already finished eating my lunch.(私はすでにお昼を食べ終わりました)
→ Have you already eaten your lunch?(君はもうお昼を食べちゃったのですか?)
④ I have liked her for a long time. (私は長い間、ずっと彼女が好きでいる)
→ How long have you liked her?(君は彼女を好きになってどれ位になりますか?)
⑤ Have you ever met her?(君はこれまで彼女に会ったことがありますか?)
→ Yes, I have.(はい、あります) No, I haven’t.(いえ、ありません)
⑥ How long have you lived in Tokyo? (君は東京に住んで何年になりますか?)
→ I’ve lived here for a year.(1年です) / I’ve just moved here.(越してきたばかりです)
※疑問文での「yet(もう)」が単純な疑問を表すのに対し、「already(もう)」は驚きを含む
現在完了形の応用
以降では、現在完了形の応用文法を見ていきます。一つは、現在完了と現在進行形を組み合わせた「現在完了進行形」で、もう一つは現在完了での受け身、受動態です。
現在完了進行形
現在完了進行形は、「過去からの動作継続」を表せます。「継続」は現在完了でも表せましたが、現在完了形で継続を表現できるのは「live/like/know」などの状態動詞だけでした。しかし、この用法を用いると、過去から現在までの動作の継続を表せるのです。
文法名 | 文種 | その形 | 例文 |
---|---|---|---|
現在完了 進行形 | 否定 | Have (has) + been+ 動詞の-ing形 … . (主語は)ずっと~している | ・I have been doing this for two hours. (私はこれを2時間ずっと続けている) ・I have been playing chess for a year. (僕は1年間チェスをしている) |
疑問 | Have (has) +主語+ been+ 動詞の-ing形 …? (主語は)ずっと~していますか? | ・Have you been trying this all day? (君は一日中これに挑戦していたの?) ・How long have you been doing this? (君はどの位の間これを続けていますか?) |
※なお、現在完了進行形は直前で終了した動作を表すこともあるので注意。
※用法を示すための副詞句は青字標記。
※「been」は「be」の過去分詞だから、「have/has been」で「have/has + 過去分詞」が成立。一方、「been」は「be動詞」でもあるので、「been + V-ing」で「be動詞+動詞の-ing形」が成立。つまり、真ん中の「been」が一人二役。
◆現在完了進行形の例文
現在完了進行形は、過去から現在までの動作の継続を表すことができます。なお、動作そのものが途切れずに続いている場合は勿論、例えば「英語の勉強」のように終了・再開を繰り返す行動も含めて現在完了進行形で表現できます。
① I have been playing tennis since I was a child.(私は子供の時からテニスをしています)
② She has been playing tennis for three hours.(彼女は3時間続けてテニスをしています)
③ How long have you been studying English?(君は英語を勉強してどのくらいになりますか?)
④ I have been playing a video game all day. (私は一日中ずっと、ビデオゲームをしている)
⑤ Have you been cooking for three hours?(君は3時間料理をし続けているのですか?)
※③で勉強時間を聞いていることを明示するなら「How many hours…?」を使おう。
現在完了での受け身(受動態)
現在完了で受動態を作るには、「have/has been 過去分詞」を用います。真ん中にある「been」が過去分詞とbe動詞の二つの役割を担い、「have+過去分詞」と「be動詞+過去分詞」の形が成立しています。用法や例文は、受動態の記事でご確認ください!
確認クイズに挑戦!
さて、それでは現在完了形(とその応用)の理解を試す確認クイズに挑戦です!現在進行形は、ペアになる副詞句等、身に着けるべきことが沢山あります。以下のクイズでは現在完了形マスターに重要となる表現を多く使っていますので、繰り返し練習しましょう!
答え:I have lived in this town for ten years.
10年前から継続して住んでいることを表したいので、現在完了を用いる。「住む」を表す「live」は状態動詞なので、進行形にしなくても継続を表すことができる。そこで、「have lived in this town」とすれば、「この街に住み続けている」の意味になる。
なお、「~年間」は「for ~」で表せるので、「10年間」は「for ten years」。これらを合わせると「I have lived in this town for ten years.」を得る。
なお、「live」は「住んでいる」という状態を表す状態動詞だが、「住む」という動作を表す動詞としても活用可能。その場合、現在完了進行形で「I have been living…」となり、その場所に「一時的に」住んでいるという意味になる。
答え:Have you ever been to Nara?
「~に行ったことがある」は「have been to」で超頻出表現。現在完了形の疑問文は「Have/has 主語+ 過去分詞…?」と表せるので、「Have you been to Nara?」となる。経験を問う疑問文では「ever」を用いることが多いので、追加して答えを得る。
答え:I’ve just got (gotten) up.
「~したところだ」は現在完了の完了用法で表せ、その形は「have/has + 過去分詞」。また、「ちょうど」は完了用法の副詞句としての定番ペア「just」で表せる。主語から並べて「I have just gotten up.」を得る。短縮形「I’ve」を使ったが、「I have」でも可。
答え:Have you bought the picture yet?
「したところだ」は完了形で「主語 + have / has + 過去分詞」と表せる。これを疑問形にすると、「have / has」が文頭に出て「have / has + 主語 + 過去分詞…?」となる。主語は「君」で「you」、過去分詞は「買う」で「bought」、目的語は「the picture」である。
これらのことから「Have you bought the picture? 」を得る。今回はこの文に「もう」を追加する必要がある。完了の疑問文で「もう」を表す表現には「already」と「yet」があり、前者は驚きを伝えたい際、後者は単純な疑問を表す際に使われる。今回は単純な疑問を示したいだけなので「yet」を選択し「yet」の定位置である、文末に置く。
なお、「already」を使うならば、「already」は動詞の前に置く。完了形では過去分詞の前に置いて「Have you already bought the picture?」という風に使う。なお、この場合は「もうその絵画を買っちゃったの?」のように驚きが含まれる文になっている。
答え:She has already gone to the park.
「Aへ行ってしまったところだ」は完了形の頻出表現の一つ「have gone to A」で表せる。主語は「she」なので「have」は「has」で、行先は「その公園」なので「the park」。これらから、「She has gone to the park.(彼女はその公園へ行ってしまった)」を得る。
今回はこの文に「すでに」という要素を加えたいので、「already」を使う。「already」は動作動詞の前に入れるのが通例なので「She has already gone to the park」となる。
答え:I have not read the book yet.
「~が完了していない」は現在完了を用いて表せ、その形は「have/has + not + 過去分詞」。通常の助動詞を否定するときと同じように「have/has」を助動詞と考えて、その後ろに否定語の「not」を置けばよい。(意味を強めたい場合は「never」も可)
否定文で「まだ」を作るのは「yet」。「already」と「yet」は働きを混同しがちなので、何度も練習を繰り返して定着させよう。「yet」は文末に置くのが自然なので、文末に置き完成。
答え:Has Tom already finished his homework?
この文は完了形で作ることができる。完了形の疑問文は「have/has + 主語 + 過去分詞…?」で表すことができる。今回の主語は「Tom」なので、使うべきは「has」。これを順番通り並べると「Has Tom finished his homework(彼は宿題を終えましたか?)」になる。
完了の疑問文で「もう」を尋ね場合は「already」または「yet」を用いるが、今回は「驚き」を示したいので「already」が相応しい。「already」は動詞の前に入れるので、正答「Has Tom already finished his homework?」を得る。
答え:How long have you been studying English?
完了形で「継続」を尋ねる用法を用いる。完了形で継続を表すには2つの方法があり、一つは「live」などの状態動詞に当てはまる「have+過去分詞」を用いるもの。一方、今回の「study」のように「一回一回の動作」を表す動詞については「have been 動詞のing」の現在完了進行形で継続を表すのがルール。
「私は(ずっと)英語を勉強しています」は「I have been studying English」。現在完了では「have / has」が助動詞のように主語の前に出て疑問文を作るので、疑問文は「Have you been studying English?(君は(ずっと)英語を勉強していますか?)」になる。
また、「どのくらいの間」を表す「how long」を文頭に出す。その後ろに、現在完了進行形の疑問文をくっつけて「How long have you been studying English?」を得る。なお、疑問詞で始まる疑問文には「Yes/No」では答えられないので注意。
※オンライン英会話をしていると、この質問を受ける機会は非常に多い。色々と応用も利く表現なので、この活用例は是非とも覚えておきたい。疑問文も、肯定文も使いこなせるようになろう。
答え:It has been windy since this morning.
ある時点から現在への継続を表すためには、現在完了形を用いる。今回は天候を表す文章なので、形式主語の「it」を使った文になる。「風が強い」だと「It is windy」となる。これを、過去の一時点(今朝)から現在に至るまで継続している、と表現したい。
現在完了形は「have/has + 過去分詞」で表現できる。継続を表すには「現在完了形」または「現在完了進行形」のいずれかを用いるが、「be」は状態動詞なので「現在完了形」で継続を表す。従って、「It has been windy」で「風が強い状態が続いている」を表せる。
この文に「今朝から」という表現を加えればよい。そのためには、過去の一地点を起点する表現「since」を用いればよい。「since」の後ろには文を付けることも、名詞を置くこともできる。今回は「今朝」を表す「this morning」を置いて「今朝から」を得る。
これらを順番通り並べて「It has been windy since this morning.」を得る。
答え:I have been working in Japan since 2016.
過去から現在までの継続を表す文。現在完了形で継続を表す際は2通りの方法があるが、「働く」のような動作動詞の場合は、現在完了進行形「have/has been 動詞のing」で表す。従って、「私は日本で働いている」は「I have been working in Japan.」となる。
この文章に、「2016年から」という意味を足したい。これには、過去の一地点からの継続を表す「since」を用いればよい。「since」の後ろには文章または名詞を置けるが、今回は「2016」を置くことで「2016年以来」という意味を作れる。これを後ろに足して完成。
答え:I have read the book many times.
経験の有無を表現する場合、「現在完了」が使える。その形は「have/has + 過去分詞」で、今回は主語が「私」なので「I have read the book」となり、「私はその本を読んだことがある」と言う意味(になり得る※)。後はこの文に、「何度も」という意味を加えたい。
「~回」には「~times」という表現が使える。今回は「多くの回」を表すため「many times」とする。これを文末に加え、正答「I have read the book many times」を得る。
なお、「~times」は「~」の数字を入れ替えて使える便利な表現。例えば「three times」なら「3回」、「four times」なら「4回」となる。ただし、1回・2回についてはそれぞれ「once」と「twice」という固有表現あるので「~ times」とは言わない。
※「I have read the book」だけでは、動作の完了を表現している可能性(私はその本を読み終わった)もある。この文だけで終わっても間違いではないが、誤解を招く可能性はある。文脈上明らかな場合はともかく、基本的には副詞句で補足するのがベター。
さいごに
やや苦手にする方も多い「現在完了」ですが、その仕組みは実はシンプル。まずは現在完了形を表す形「have/has + 過去分詞」の扱いに慣れ、その後は助動詞のルールで疑問や否定を作る練習を。現在完了形が定着したら、過去・未来完了形の学習へ進みましょう!