現在完了(継続) 解説
「ずっと~している」という表現を「継続の現在完了」といいます。「三日前からずっと雨が降っている」とか、「十年前からずっと日本に住んでいる」とかいった表現が、継続の現在完了です。英語では have(has)+過去分詞で表します。また、継続の現在完了は、have(has)+過去分詞のあとに、since~(~から、~以来)とか、for~ (~間) がでてくる場合が多いです。例文をみてみましょう。
I have lived in Japan for a year. 私は1年間ずっと日本に住んでいる。 She has played the guitar since this morning. 彼女は今朝からずっとギターを弾いている。 |
I have の短縮形は I've です。
You have の短縮形は You've です。
He has の短縮形は He's だし、She has の短縮形は She's です。
He is や She is の短縮形と見分けがつかないじゃないか、と思うかもしれません。その通りです。つかないです。そのあとどう文がつづいていくか、で判断してください。
あともちろん、I have a book.(私は本を持っている)というときの I have を I've にしてはいけません。こういうときは短縮形にしてはいけません。現在完了のときだけ、短縮形が使えます。
I've lived in Japan for a year. 私は1年間ずっと日本に住んでいる。 She's played the guitar since this morning. 彼女は今朝からずっとギターを弾いている。 |
不規則動詞の過去分詞は暗記してください。中学のうちにおぼえるべき不規則動詞については、「不規則動詞変化表」というふうに、教科書のどこかにのっています。たいていうしろのほうにあります。このサイトでも、練習できる場所があります。かならずすべておぼえましょう。…って、いうほうはラクだし簡単なんだけど、やらされるほうは大変なんですよねえ。わかります。でもやらなくちゃだめです。不規則動詞変化を知らないと、テストで点数がとれないです。がんばって。
リンク 不規則動詞変化
それでは練習問題をやりましょう。
問題をクリックすると答えがでます。
練習問題 日本語にあうように、( ) 内に適する語をいれましょう。
私は3年間ずっと英語を勉強している。
I
( ) ( )
English
( )
three years.
I have studied English for three years.
彼は昨日からずっといそがしい。
He
( ) ( )
busy
( )
yesterday.
He
has been busy
since yesterday.
※ be の過去分詞は been です。
継続の現在完了について説明していますが、じつは、現在完了には、「継続」のほかに、「経験」と「完了」があります。訳し方が変わるので、見分けられるようにしなければいけません。
since か for があったら、継続の現在完了です。since か for があったら、「ずっと~している」と訳せばOKです。たいてい。
since~ は、「~から、~以来」の意味です。
for~ は、「~間」の意味です。
He has been in Japan for three weeks. 彼は3週間ずっと日本にいる。 He has been in Japan since last week. 彼は先週からずっと日本にいる。 |
注意点があります。
「ago」というのは、「~前」という意味です。「3日前」なら、「three days ago」といいます。なので、現在完了で、「3日前から」というときに、「since three days ago」といいたくなるのですが、これはダメです。現在完了で「ago」は使っちゃダメです。そういうことになってます。
じゃあ「3日前から」はどういうふうに表現するのかというと、
He has been in Japan for three days.
というふうに、for を使って、「3日間」としてください。「彼は3日間ずっと日本にいる」としてください。これで、日本人が日本語でいう「彼は3日前から日本にいる」というのと同じ表現です。だから、たとえば
I have studied English for three yeas.
というのは、「私は3年間ずっと英語を勉強している」というのが日本語訳ですが、「私は3年前から英語を勉強している」というときも、そのようにいってください。「since three yeas ago」はダメです。現在完了で「ago」は使わないで。これが注意点です。
for を使った表現でよく見かけるのに「for a long time」というのがあります。「長い間」という意味です。
また、since を使った表現でよく見かけるのには、「since I was a child」というのがあります。「私が子供だったときから」という意味です。「since he was a child」だったら、「彼が子供だったときから」という意味になります。
I have wanted to go to America for a long time. 私は長い間ずっとアメリカに行きたいと思っている。 I have known her since she was a child. 私は彼女が子供だったときからずっと彼女を知っている。 |
それでは問題をやりましょう。
問題をクリックすると答えがでます。
練習問題 日本語にあうように、( ) 内に適する語をいれましょう。
彼女は長い間ずっと新しいギターをほしがっています。
She
( ) ( )
a new guitar
( ) ( ) ( ) ( ).
She has wanted a new guitar for a long time.
私は子供だったときからずっと日本に住んでいます。
I
( ) ( )
in Japan
( )
I was a child.
I have lived in Japan since I was a child.
現在完了の否定文は、have(has) のうしろの not をいれればよいです。
また、have not の短縮形は haven't です。has not の短縮形は hasn't です。
I have not seen him for a long time. I haven't seen him for a long time. 私は長い間ずっと彼に会っていません。 He has not studied English since last week. He hasn't studied English since last week. 彼は先週からずっと英語を勉強していません。 |
現在完了の疑問文は、have(has) を前に出せばよいです。答え方は、Yes, I have.とか、No, I have not. とかです。have not はもちろん haven't でもいいです。I のところは he とか she とか、場合によってかわります。
Have you been in Japan since last week? あなたは先週からずっと日本にいるのですか。 Yes, I have. / No, I haven't. はい、います。 / いいえ、いません。 Has she been sick in bed since last month? 彼女は先月からずっと病気で寝ているのですか。 Yes, she has. / No, she hasn't. はい、寝ています。 / いいえ、寝ていません。 |
では練習問題です。
問題をクリックすると答えがでます。
練習問題 日本語にあうように、( ) 内に適する語をいれましょう。
私たちは先月からずっと野球をしていない。
We
( )( )( )
baseball
( ) last month.
We have not played baseball since last month.
一週間ずっと雨が降っていない。
It
( )( )
( )
a week.
It hasn't rained for a week.
あなたは彼が子供のときからずっと彼を知っているのですか。
( )
you
( )
him
( )
he was a child?
はい、知っています。 / いいえ、知りません。
( ),( )( ). / ( ),( )( ).
Have
you
known
him
since he was a child?
Yes, I have. / No, I haven't.
彼女は3年間ずっとテニスをしているのですか。
( )
she
( )
tennis
( )
three years?
はい、しています。 / いいえ、してません。
( ),( )( ). / ( ),( )( ).
Has
she
played
tennis
for three years?
Yes, she has. / No, she hasn't.
How long have(has)~? の疑問文は、「あなたはどれくらいの間ずっと~しているのですか」とたずねる疑問文です。継続の現在完了のところで、テストによくでる疑問文です。
How long have you lived in Japan? あなたはどれくらいの間ずっと日本に住んでいるのですか。 How long has she studied English? 彼女はどれくらいの間ずっと英語を勉強しているのですか。 |
この質問に答えるときは、その期間を答えることになります。
5年間なら、「For five years.」です。
今朝からなら「Since this morning.」です。
そんなふうに、For や Since をつけて答えます。
んで。日本語の会話の中で、「いつから~してるの?」とたずねることがよくあります。「いつから彼のことを知ってるの?」とかいう感じです。そういうとき、「あなたはどれくらいの間彼のことを知ってるの?」というきき方は、日本語ではあまりしません。不自然な感じです。でも、英語のときは、この How long have(has)~? の表現を使ってください。
How long have you known him?
というのは、「あなたはどれくらいの間彼を知っているのですか」というのが日本語訳ですが、日本人が日本語で「いつから彼のことを知っているの?」ときくのと同じことです。そう思っちゃっていいです。
なので、上の例文の
How long have you lived in Japan?
というのは、「あなたはいつから日本に住んでるの?」ときくのと同じことです。
How long has she studied English?
というのは、「彼女はいつから英語を勉強しているの?」ときくのと同じことです。
その答えとして、たとえば「For five years.」と答えたら、「5年間です」というのが日本語訳ですが、日本人が日本語で「5年前からだよ」というのと同じことです。そう思っちゃっていいです。
ただ、思っちゃうのはいいんですけど、いちおうテストで「訳しなさい」といわれていたら、念のため「5年間です」と答えておきましょう。
問題をクリックすると答えがでます。
練習問題 日本語にあうように、( ) 内に適する語をいれましょう。
どれくらいの間あなたは英語をずっと勉強しているのですか。
( )( )( )
you
( )
English?
3年間です。
( )( )( ).
How long have
you
studied
English?
For three years.
どれくらいの間ずっと雨が降っているのですか。
( )( )( )
it
( )( )?
今朝からです。
( )( )( ).
How long has
it
been raining?
Since this morning.