英文法の現在完了形はこれでバッチリ!肯定文・否定文・疑問文を練習問題付きで徹底解説

英文法の現在完了形はこれでバッチリ!肯定文・否定文・疑問文を練習問題付きで徹底解説

英文法の現在完了形の肯定文・否定文・疑問文を練習問題付きで詳しく解説していきます。

英文法が苦手な方はぜひ参考にしてみてください。

英語の現在完了形とは

  • 今年は英語をもっと勉強するぞ!
  • 夏までに5キロ痩せるぞ!
  • 今年はもっと旅行するぞ!

など、「まさに今この瞬間に決めた」ことを英語で表す時には次のように現在完了形を使います。

I have decided to study English harder!
英語をもっと勉強するぞ!

「決めた」という日本語は過去形のように聞こえますが、「まさに今この瞬間に決めた」という今のようで過去のようなこの微妙なニュアンスを表すのが現在完了です。

ちなみに、決めたのが5分前であれ10年前であれ、今この瞬間決めたことではない場合は「I decided to study English harder.」のように過去形で表します。

簡単に言えば、「過去形が表しているのは単なる過去の話」で、現在完了は

  • お皿を洗った結果、今はキッチンがきれいだ
  • 新しいパソコンを買った結果、今は仕事がはかどっている
  • 書き留めた結果、今はもう忘れる心配がない

「今に何らかの結果や影響をもたらしている過去の動作や出来事」を表しています。

否定文、疑問文も同様です。ただし、現在完了は日本語にはないニュアンスなので、否定文の和訳は現在形のように聞こえます。

She didn’t come back.
彼女は戻って来なかった。(過去の事実)

She hasn’t come back.
彼女は(まだ)戻って来ていない。(結果として今誰かが困っているなどの影響がある。)

Did you hear from him?
彼から連絡あった?(事実確認)

Have you heard from him?
彼から連絡あった?(連絡の有無が今に何らかの影響を与える。連絡がないならこちらから電話しようかなど)

現在完了形は日本語で説明・理解するのはとても難しいため、私たち日本人にとって特に難しい英文法だと思いますが、練習問題などを解いていけばそのニュアンスをつかむことができます。難しく考えずに練習していきましょう。

現在完了形の英文の作り方|基本

現在完了は「have/has + 動詞の過去分詞」で表します。否定文は have/has の後に not を付け、疑問文は have/has を文頭に置きます。

<現在完了の肯定文と否定文>

現在完了の肯定文と否定文

<現在完了の疑問文>

現在完了の疑問文

動詞の過去分詞とは

動詞は現在形・過去形・過去分詞という3つの形に変化します。

動詞には規則動詞と不規則動詞がありますが、規則動詞の過去分詞は過去形と同様、語尾に ed を付けます。不規則動詞の中には過去形・過去分詞が同じものもあれば、そうでないものも多く、変化は様々です。

【規則動詞】
私はお皿を洗いました。
① I washed the dishes.
② I’ve washed the dishes.

【不規則動詞(過去形・過去分詞が同じ)】
ジョージは新しいパソコンを買った。
① George bought a new computer.
② George has bought a new computer.

【不規則動詞(過去形・過去分詞が別の形)】
私はそれを書き留めた。
① I wrote it down.
② I’ve written it down.

現在完了形の練習問題

現在完了形の練習問題です。

Q1. 次の文章の時制を過去形から現在完了に変えてください。

1. Pam broke her arm.
2. We had the time of our lives.
3. I decided to lose weight.
4. He didn’t make any mistakes.
5. Mr. Bedell went on a business trip.

Q2. ( )内の動詞を適切な形に変えて現在完了の文を完成さてください。(一語とは限りません。)

1. Dad ( buy ) me a new pair of shoes. They’re pretty cool.
2. Oh, no! I’ve ( lose ) my smartphone!
3. “Hi Sue, long time no see!” “Hi Kate! You ( not / change ) a bit!
4. “Can I speak to Gary, please?” “Oh, it’s too bad he ( go ) to work.”
5. It ( stop ) raining. Let’s go!

Q3. [ ]の動詞を適切な形に変えて、1~5の絵の内容を現在完了の文を作ってください。ただし動詞はそれぞれ1回ずつしか使えません。

登場人物:リスはりす君、金髪の子はハナちゃん、青い髪の子はりかちゃんです。

現在完了形の挿絵

 [ receive turn off wash miss stop ]

現在完了形の練習問題の解説

現在完了形の練習問題の解説です。

Q1. 次の文章の時制を過去形から現在完了に変えてください。

1. Pam broke her arm.
Pam has broken her arm.
パムは腕を骨折してしまった。

break(~を壊す)はbroke(過去形)- broken(過去分詞)と変化します。

2. We had the time of our lives.
We’ve had the time of our lives.
私たちは最高のひと時を過ごした。

the time of one’s life は最高のひと時という意味です。have a good time よりも大満足しているイメージです。

3. I decided to lose weight.
I’ve decided to lose weight.
痩せることに決めたわ。

ちなみに反対の太るは「gain weight または put on weight」です。

4. He didn’t make any mistakes.
He hasn’t made any mistakes.
彼は(今のところ)一つもミスをしていない。

make a mistake/mistakes は「間違う」を意味するイディオムです。He has made no mistakes. とほぼ同じ意味になります。

5. Mr. Bedell went on a business trip.
Mr. Bedell has gone on a business trip.
ベデル氏は出張に行ってしまいました。(行ってしまって今ここにいません)

Q2. ( )内の動詞を適切な形に変えて現在完了の文を完成さてください。(一語とは限りません。)

1. Dad ( buy ) me a new pair of shoes. They’re pretty cool.
→Dad ( has bought ) me a new pair of shoes. They’re pretty cool.
パパが私に新しい靴を買ってくれたの。なかなかステキよ。

靴や手袋などは a pair of, two pairs of と「ペア」で数えます。prettyは「かなり」という意味で使われています。ちなみに「きれいな」という意味でもありますが、「かわいい」ではないので注意しましょう。

cool は日本人が言う「クール(冷静な)」という意味もありますが、「かっこいい」「イケてる」など数々の褒め言葉として人にもモノにもよく使われます。

2. Oh, no! I’ve ( lose ) my smartphone!
→Oh, no! I’ve ( lost ) my smartphone!
あらやだ!スマホなくしちゃった!

なくしたばかりで(今)困っている様子です。

3. “Hi Sue, long time no see!”
“Hi Kate! You ( not / change ) a bit!”

→“Hi Sue, long time no see!”
“Hi Kate! You ( haven’t changed ) a bit!”
「ハイ、スー、久しぶり。」
「ハイ、ケイト!あなた全然変わってないわね。」

long time no seeは「久しぶり」を表すイディオムです。not a bit は not at all とほぼ同じで「全く(少しも)~ない」を表します。

4. “Can I speak to Gary, please?”
“Oh, it’s too bad he ( go ) to work.”

→“Can I speak to Gary, please?”
“Oh, it’s too bad he’s ( gone ) to work.”
「ギャリ―さんいらっしゃいますか。」
「あら、残念だわ。仕事に出たところよ。」

“Can/May I speak to~?”は電話での決まり文句です。

5.It ( stop ) raining. Let’s go!
→It’s ( stopped ) raining. Let’s go!
雨が止んだぞ。さあ、行こう!

It’s = It has です。「~するのが止まる(を止める)」はstop + ~ing で表します。

Q3. [ ]の動詞を適切な形に変えて、1~5の絵の内容を現在完了の文で表してください。ただしそれぞれ1回ずつしか使えません。

登場人物:リスはりす君、金髪の子はハナちゃん、青い髪の子はりかちゃんです。

現在完了形の挿絵

 [ receive turn (off) wash miss stop ]

1. Hana has washed the dishes.
ハナちゃんはお皿を洗った(ところです)。

2. Rika has received an e-mail.
りかちゃんはメールを受け取った(ところです)。

received の代わりに got (getの過去分詞)も使えます。

3. Risu has missed the train.
りす君は電車に乗り遅れてしまった。

「電車に間に合う」は catch the train です。

4. The baby has stopped crying.
赤ちゃんが泣きやんだ(ところです)。

この問題は絵から推測するのが少し難しかったかもしれません。

5. Mom has turned off the TV.
お母さんがテレビを切ってしまった。

テレビを見るは watch TV ですが、つける・消すという時はTVに冠詞 the が必要です。学校に行くは go to school ですが、学校の近くは near the/a school と言うのと同じです。

現在完了形とよく一緒に使われる3つの英単語

現在完了の特徴は「そのことが今に何らかの結果や影響をもたらしている」ということですが、日本語ではイマイチ過去形と現在完了の違いをつかみづらいと思います。現在完了とよく一緒に使われる「時間をはっきりさせる単語」がありますので、一緒に覚えてしまいましょう。

just

justは日本語の「ジャスト」と同じ「ちょうど」という意味ですが、justがあれば過去形との違いがハッキリします。例文を見てみましょう。

I’ve just decided to study harder.
ちょうど一生懸命勉強すると決めた(ところ)

It’s just stopped raining.
たった今雨が止んだ。

I’m sorry I’m late.
遅れてすみません。
That’s OK. We’ve just started.
いいのよ。ちょうど始めたところだから。

already

already(もうすでに)という単語も現在完了形と一緒に使われます。「It’s stopped raining.」に付け加えると、

It’s already stopped raining.
雨はもうすでに止んだ。

alreadyは動作や出来事が話者、または聞き手の予想より前に起こった時に使います。例えば同じ「決めた!」でも already を使うと次のように変わります。

“Study harder.”
もっと一生懸命勉強しなさいよ。
“I’ve already decided.”
もうすでにそう決心したよ。

“Where’s Nancy?”
ナンシーはどこ?
“She’s already left.”
もう行っちゃった(出発した)わよ。

yet

yetは現在完了形の否定文では「まだ(~していない)」、疑問文では「もう(~した?)」という意味で使われます。例文を見てみましょう。

Have you had lunch yet?
もうお昼食べた?
No, not yet.
いや、まだ。

I’ve already heard of the film, but I haven’t seen it yet.
その映画のことは聞いていますが、まだ観ていません。

現在完了形とよく一緒に使われる英単語の練習問題

現在完了形とよく一緒に使われる英単語の練習問題です。

Q1. ( ) にあてはまる最も適切な単語を下の[ ]の中から選び、自然な会話文を完成させてください。ただしそれぞれ1回ずつしか使えません。

[ just already yet ]

1. A : Has Paul asked you out ( )?
B : No, he hasn’t, but I know he wants to.

2. A : I’m looking for a new job.
B : Do you want to leave your job?
A : I’ve ( ) quit. I need one ASAP.

*one: a jobを指す代名詞
*ASAP=as soon as possibleの略。至急。

3. A : How is your son doing?
B : I’ve ( ) heard from him that everything is going well.

Q2. [ ] 内の単語を並べ替えて意味の分かる英文を完成させてください。

1. Tracy [ dinner / with / just / has / had ] her colleagues.
2. Does it still hurt? [ yet / seen / a doctor / have / you ] ?
3. We want to play badminton in the backyard,  but [ stopped / yet / hasn’t / the wind / blowing ].
4. No matter what, I’ve [ my / up / already / made ] mind.
*No matter what: たとえ何があろうと、どんな状況であれ

Q3. ( ) 内の語句を使って絵が表す内容を説明する英文を作ってください。ただし、動詞は適切な形に変えてください。

登場人物:金髪の子はハナちゃん、青い髪の子はりかちゃんです。

1. Rika ( ) . [ go / just ]
2. Hana ( ) . [ do the laundry / yet ]
3. “Do you know Black-footed-cats?”
“Yes, ( ) .” [ see / already ]

Q4. 次の質問に対する答えとして最も適切なものを①~④の中から選んで番号で答えてください。それぞれ1回ずつしか使えません。

1. Are you interested in the diet program?
2. Have you told your mom about it?
3. Is everyone here?
4. This is great! And it’s not so expensive.

① No, not yet.
② I know. I’ve just bought one, too.
③ No, Jonny hasn’t arrived yet.
④ No, I’ve already tried it.

現在完了形とよく一緒に使われる英単語の練習問題の解説

現在完了形とよく一緒に使われる英単語の練習問題の解説です。

Q1. ( ) にあてはまる最も適切な単語を下の[ ]の中から選び、自然な会話文を完成させてください。ただしそれぞれ1回ずつしか使えません。

[ just already yet ]

1. A : Has Paul asked you out ( yet )?
B : No, he hasn’t, but I know he wants to.

訳 A: ポールはもうあなたをデートに誘ってきた?
B: まだだけど、そうしたいのはわかってるわ。

ask は「尋ねる」「頼む」の他に「誘う」という意味でも使われます。ちなみに「夕食に誘う」は「ask + 人 to dinner」です。

2. A : I’m looking for a new job.
B : Do you want to leave your job?
A : I’ve ( already ) quit. I need one ASAP.

訳 A: 新しい仕事を探してるんだ。
B: (今の)仕事を辞めたいのかい?
A: もうすでに辞めちゃった。なるべく早く(新しい)仕事が必要なんだ。

leave はここでは quit と同じ意味で使われています。

次の仕事が至急必要なのは「すでに今までの仕事を辞めてしまっているから」と考えると already が正解です。just も使えますが3の答えとして必要なので already になります。

ASAP(至急)はビジネス用語としてもよく使われます。

3. A : How is your son doing?
B : I’ve ( just ) heard from him that everything is going well.

訳 A: 息子さんはどうしてる?(元気?)
B: ちょうど連絡があったばかりよ。何もかも順調(上手く行ってる)ですって。

already を使うと「すでに連絡があったわ。」という意味になります。しかし相手は連絡があったかどうかを先に尋ねていないので just の方が適切です。

Q2. [ ] 内の単語を並べ替えて意味の分かる英文を完成させてください。

1. Tracy [ dinner / with / just / has / had ] her colleagues.

Tracy has just had dinner with her colleagues.
トレイシーはちょうど同僚と夕食をとったところです。

2. Does it still hurt? [ yet / seen / a doctor / have / you ] ?

Does it still hurt? Have you seen a doctor yet?
(そこ)まだ痛むの?もうお医者さんに行った(診察してもらった)?

“Go see a doctor.”(お医者さんへ行きなさい。)もよく聞くセリフです。go と see の間に and/to が省略された形です。

3. We want to play badminton in the backyard, but [ stopped / yet / hasn’t / the wind / blowing ].

We want to play badminton in the backyard, but the wind hasn’t stopped blowing yet.
裏庭でバドミントンをしたいけど、風がまだ止んでいない。

stop ~ing(~するのが止まる・~するのを止める)はよく使われる形なので覚えておきましょう。quit も同様に quit~ing の形で使われます。

4. No matter what, I’ve [ my / up / already / made ] mind.

No matter what, I’ve already made up my mind.
どんな状況であれ、もう僕はすでに決心したんだ。

no matter what は文末に置かれることもあります。「make up one’s mind」はdecideと同じ意味です。

Q3. ( ) 内の語句を使って絵が表す内容を説明する英文を作ってください。ただし、動詞は適切な形に変えてください。

登場人物:金髪の子はハナちゃん、青い髪の子はりかちゃんです。

1. Rika has just gone to bed.
りかちゃんはたった今就寝しました。

2. Hana hasn’t done the laundry yet.
ハナちゃんはまだ洗濯をしていない。

冠詞なしで do laundry とも言います。

3. “Do you know Black-footed-cats?”
“Yes, I’ve already seen her (on TV).”
「くろあしねこを知ってる?」
「うん。もうテレビで見たわ。」

on TV はなくても正解です。

Q4. 次の質問に対する答えとして最も適切なものを①~④の中から選んで番号で答えてください。それぞれ1回ずつしか使えません。

1. Are you interested in the diet program?
④ No, I’ve already tried it.

そのダイエットプログラムに興味ある?
ううん。もうすでに試したわ。

Are you…? という質問には、原則としてまずYes/Noで答えるので、①③④が候補に上がります。そして試す(try/tried)という単語から④が最適と判断できます。

2. Have you told your mom about it?
① No, not yet.

お母さんにそのことを話した?
ううん。まだ。

3. Is everyone here?
③ No, Jonny hasn’t arrived yet.

みんな揃った?(ここにいますか)
いえ、ジョニーがまだ到着していません。

①も正解ですが、2の答えとして③は不適切なのでこちらだとわかります。

4. This is great! And it’s not so expensive.
② I know. I’ve just bought one, too.

これスゴイわ!それにあまり高くないし。
そうよね。ちょうど私も(1つ)買ったところよ。

これスゴイ!と言っている人が持っている物は代名詞 it で指しますが、それとは別の個体を買ったので one になります。

Have you everを使った現在完了形

「経験」を表す時にも現在完了を使います。

例えば、「Have you seen the movie yet?」は「もうその映画を観ましたか。」という意味です。yet がなくても、今までに(過去と今の間に)観たかどうかを尋ねていると受け取ることができます。

しかし、「Have you seen the movie?」では「すでに観たかどうか」「今までに観たことがあるかどうか」のニュアンスの違いがハッキリしません。そこで、前者の場合は yet、後者を聞きたい時は ever を使って区別します。

Have you ever seen the movie?
あなたはその映画を観たことがありますか。

これはいわゆる「経験」を聞いています。一度も観たことがなければ never を使ってこのように表現します。

I’ve never seen the movie (before).
*before: 以前に

一度観たことがあれば once、2度なら twice、3回なら three times、それ以上なら〇〇 times(〇〇に数字を入れる)で表します。

I’ve seen the movie twice.
その映画は2回観たことがあります。

one time (once), two times (twice) も使えます。

他の例も見てみましょう。「あなたはアフリカへ行ったことがありますか?私は一度も行ったことがありません。アメリカなら行ったことがありますが…。」これを英語で言うと次のようになります。

Have you ever been to Africa?
I have never been there.
But I’ve been to America.

go の過去分詞 gone は「行ってしまってここにいない」という意味を表すので been を使います。

例えば「彼はアフリカへ行っちゃった。」なら「He’s gone to Africa.」ですが、「行ったけど、今は戻っている」なら“been” となります。

さて、ここでクイズです。次の①②③は刑事ドラマの中で刑事が容疑者に言うセリフですが、太文字部分に英語字幕をつけるとすれば、それぞれa, b, c のどれが最も適切でしょうか。

① やっと見つけたぜ。いったい今までどこにいやがったんだ
どこにいるんだ。いつまでも隠れていないでさっさと出て来い!
③ あなたは先週金曜日の午後10時頃どこにいましたか

a) Where are you?
b) Where were you?
c) Where have you been?

答えはこちらです。
① どこにいやがったんだ
c) Where have you been?

② どこにいるんだ
a) Where are you?

③ どこにいましたか
b) Where were you?

Have you everを使った現在完了形の問題

Have you everを使った現在完了形の問題です。

Q1. 例に従って、以下の人物の“経験”を英語で表してください。

例)I’ve seen a horror movie only once.

Have you everの問題の表

1. Beth …..
2. My parents ….
3. Linda’s sister ….

Q2. あなたはQ1.の“経験”がありますか。またそれは何回ですか。4つの中(what)から3つ選んでQ1.の例のようにI’ve…で始まる文章で表現してください。回数は3回以上でも、又同じ回数の答えが複数あっても構いません。

1. I’ve …..
2. I’ve …..
3. I’ve …..

Q3. 以下はヘンリーさんへの独占インタビューの一部です。これに基づいて彼に関するレポートを完成させてください。ただし、同じ単語を2回以上使ってはいけません。

Interviewer : Have you ever been to Japan?
Henry : Yes, many times.
Interviewer : What parts of the country have you visited?
Henry : I’ve visited Kyoto, Osaka, and some other places in Kansai area.
Interviewer : Have you been to a sushi bar?
Henry : No, never. I still regret it.

< The Report on Henry >
Henry ( ) been to Japan many times.
He’s visited several places in Kansai area but ( ) been to Kanto area.
He regrets that he’s ( ) been to a sushi bar.

Q4. ( ) にあてはまる最も適切な単語を下の[ ] の中からから選び、自然な会話文を完成させてください。ただし、それぞれ1回ずつしか使えません。

[ been have haven’t once ever ]

Sheila : Hi, Terry! I ( ) seen you for a while. Where have you ( )?
Terry : I’ve just returned from China. I was on holiday.
Sheila : That sounds great! I’ve ( ) been to China myself. ( ) you been there many times?
Terry : No, only ( ). This was my first trip.
Sheila : Have you ( ) been to any Asian countries?
Terry : No, but I want to visit Japan one day.

*other than China?
*other than: ~以外に

Have you everを使った現在完了形の問題の解説

Have you everを使った現在完了形の問題の解説です。

Q1. 例に従って、以下の人物の“経験”を英語で表してください。

例)I’ve seen a horror movie only once.

Have you everの問題の表

1. Beth has been to Egypt twice.
ベスはエジプトに2回行ったことがある。

経験なので「行った」といっても gone ではなく been を使います。

2. My parents have never eaten raw oysters.
私の両親は生ガキを食べたことが一度もない。

rawは「生の」「加工していない」という意味です。
例)raw material : 原料

3. Linda’s sister has seen a shooting star a few times.
リンダのお姉さん(妹さん)は何回か流れ星を見たことがある。

Q2. あなたはQ1.の“経験”がありますか。またそれは何回ですか。4つの中(what)から3つ選んでQ1.の例のようにI’ve…で始まる文章で表現してください。回数は3回以上でも、又同じ回数の答えが複数あっても構いません。

*答えは一例です。

1. I’ve never been to Egypt.
私はエジプトへ行ったことがありません。

2. I’ve eaten raw oysters a few times.
私は生ガキを食べたことが数回あります。

3. I’ve seen a shooting star only once.
私はたった一度だけ流れ星を見たことがあります。

Q3. 以下はヘンリーさんへの独占インタビューの一部です。これに基づいて彼に関するレポートを完成させてください。ただし、同じ単語を2回以上使ってはいけません。

Interviewer : Have you ever been to Japan?
あなたは日本へ行かれたことはありますか。

Henry : Yes, many times.
はい。何度も。

Interviewer : What parts of the country have you visited?
どちらへ行かれましたか。

Henry : I’ve visited Kyoto, Osaka, and some other places in Kansai area.
京都や大阪その他、関西地方の数か所を訪れました。

Interviewer : Have you been to a sushi bar?
お寿司屋さんへは行かれたことがありますか。

Henry : No, never. I still regret it.
いえ、一度もありません。その事をいまだに後悔しています。

< The Report on Henry >
Henry ( has ) been to Japan many times.
ヘンリーは何度も日本へ行ったことがあります。

He’s visited several places in Kansai area but ( hasn’t ) been to Kanto area.
彼は関西地方の土地をいくつか訪れましたが、関東地方へは行ったことがありません。

「同じ単語を2回以上使えない」という制限がなければhasn’tの代わりに never も使えます。

He regrets that he’s ( never ) been to a sushi bar.
彼はお寿司屋さんへ行ったことがない事を後悔しています。

Q4. ( ) にあてはまる最も適切な単語を下の[ ] の中からから選び、自然な会話文を完成させてください。ただし、それぞれ1回ずつしか使えません。

[ been have haven’t once ever ]

Sheila : Hi, Terry! I ( haven’t ) seen you for a while. Where have you ( been )?
シーラ:ハーイ、テリー!久しぶり。しばらく会わなかったわね。今までどこにいたの?

Terry : I’ve just returned from China. I was on holiday.
中国から帰って来たところよ。休暇中だったの。

on holidayは休暇中です。
例)He’s gone on holiday.
彼は休暇をとって出かけた。

for one’s holiday(s)という使い方もあります。
例)I went to China for my holiday.
休暇を利用して中国へ行った。

Sheila : That sounds great! I’ve ( never ) been to China myself. ( Have ) you been there many times?
それは素晴らしいわね!私自身は中国へは一度も行ったことがないわ。これまでに何度も行っているの?

Terry : No, only ( once ). This was my first trip.
ううん、たった一度だけよ。今回が初めて。

Sheila : Have you ( ever ) been to any Asian countries other than China?
中国以外でアジアのどの国へ行ったことがある?

Terry : No, but I want to visit Japan one day.
ううん、でもいつか日本へ行きたいわ。

How long have youを使った現在完了形

例えば記者会見で「私、彼と婚約しました!」と言ったら、「彼と知り合ってどれくらいになりますか?」と聞かれたとします。この質問を英語でどう表現するかと言うと次の2通りあります。

  1. 「いつ彼と知り合いましたか?」と過去形で尋ねる
  2. 「どれくらいの間彼を知っていますか?」と現在完了で尋ねる

2つ目の表現はあまりピンと来ない感じですが、結構よく使われる英語独特の表現で、英語にすると次のように表します。

How long have you known him?
彼と知り合ってどれくらいになりますか。

もしすでに結婚しているのであれば次のような形です。

How long have they been married?
彼らは結婚してどれくらいになりますか。

*具体的に何年かを尋ねるなら「How many years have they been married?」です。

同じ事実でも、見方によって違った時制で表現されるということです。

How long have youを使った現在完了

理解しやすいように現在形と現在完了を比較してみましょう。次の文は上が現在形、下が現在完了形(または現在完了進行形)になっています。

I live in Osaka.
私は大阪に住んでいます。
I’ve lived in Osaka for 20 years.
私は大阪に20年間住んでいます。

Becky wants a pet.
ベッキーはペットをほしがっている。
Becky has always wanted a pet.
ベッキーはずっとペットがほしいと思っていた。

Do you have any pain?
痛みはありますか。
How long have you had the pain?
痛みはどれくらい続いていますか。

Are you studying English?
あなたは英語を勉強していますか。
How long have you been studying English?
あなたはどれくらいの間英語を勉強していますか。

I’m studying English.
私は(今)英語を勉強中です。
I’ve been studying English since I was 6 years old.
私は6歳の頃からずっと英語を勉強しています。

How long have youを使った現在完了形の問題

How long have youを使った現在完了形の問題です。

Q1. 例にならって青文字部分を訂正してください。

例)I know Peter for 15 years.
→ I have known Peter for 15 years.

1. I’m sick since last night.
2. We don’t see each other for several months.
3. Brant plays the role for over 5 years.
4. Alan and I work together since early 2007.
5. Cindy is waiting for some 20 minutes.

Q2. ( ) にあてはまる最も適切な単語を下の[ ]の中から選び、自然な会話文を完成させてください。ただしそれぞれ1回ずつしか使えません。

[ since for been have has had ]

1. “How long ( ) you ( ) working on it?”
“About a month.”

2. “Do you know Martin Brown?”
“Yes, I’ve known him ( ) his childhood.”

3. “Hey, Jimmy. You look tired.”
“Yes, I am. I’ve ( ) a busy week.”

4. “Doctor, I’ve been suffering from a bad headache.”
“When did it start?”
“It ( ) been bothering me ( ) the last couple of days.”

Q3. 絵の内容を表す文章になるように[ ] 内の単語を並べ替えてください。

登場人物:リスはりす君、金髪の子はハナちゃん、青い髪の子はりかちゃんです。

How long have youの挿絵

1. Hana [ glasses / was / since / worn / she / has ] a child.
2. They [ five hours / have / singing / for / been ].
3. It [ been / raining / day / has / all ].
4. Rika [ wanted / be / has / all / a doctor / to ] her life.
5. We [ since / have / I / together / been ] was a baby.

How long have youを使った現在完了形の問題の解説

How long have youを使った現在完了形の問題の解説です。

Q1. 例にならって青文字部分を訂正してください。

例)I know Peter for 15 years.
→ I have known Peter for 15 years.

1. I’m sick since last night.
→I have been sick since last night.
昨夜から具合が悪い。

2. We don’t see each other for several months.
→We haven’t seen each other for several months.
私たちは数ヵ月間(お互いに)会っていません。

3. Brant plays the role for over 5 years.
→Brant has played the role for over 5 years.
ブラントはその役を5年間以上務めている。

play the(a) roleは「役割(任務)を果たす」という意味のイディオムです。ここでは俳優の Brant が役を演じているという意味で使っています。

4. Alan and I work together since early 2007.
→Alan and I have worked together since early 2007.
アランと私は2007年の始めからずっと一緒に仕事をしている。(してきた)

5. Cindy is waiting for some 20 minutes.
→Cindy has been waiting for some 20 minutes.
シンディは20分くらい待っている。

some は about と同じ意味で使われることがあります。

Q2. ( ) にあてはまる最も適切な単語を下の[ ]の中から選び、自然な会話文を完成させてください。ただしそれぞれ1回ずつしか使えません。

[ since for been have has had ]

1. “How long (have) you (been) working on it?”
“About a month.”
「あなたはどれくらいの間それに取り組んでいるのですか。」
「約1ヶ月ですね。」

work on ~は「~に取り組む、従事する」という意味のイディオムです。

2. “Do you know Martin Brown?”
“Yes, I’ve known him (since) his childhood.”
「あなたはマーティン・ブラウンを知っていますか。」
「はい。彼が子供だった頃から知っていますよ。」

since his childhood はsince he was a child に置き換えることができます。

3. “Hey, Jimmy. You look tired.”
“Yes, I am. I’ve (had) a busy week.”
「やあ、ジミー。疲れてるようだね。」
「ああ、疲れてるんだ。忙しい一週間だったよ。」

「I’ve had a busy week.」の代わりに「It’s (It has) been a busy week.」と言うこともできます。いずれもその忙しい週がまだ終わっていないという意識が表れています。これが現在完了の特徴です。

4. “Doctor, I’ve been suffering from a bad headache.”
“When did it start?”
“It (has) been bothering me (for) the last couple of days.”
「先生、(ずっと)頭痛がひどいんです。」
「いつからですか。」
「この2日間ずっと悩まされています。」

suffer from は「(人が)~に苦しむ」、bother は「(人を)苦しめる」という意味です。どちらもよく使われますが、主語と目的語の関係に注意しましょう。

for 2 days は「2日間」、for the last 2 days は「この2日間」です。last の代わりに past も使えます。

Q3. 絵の内容を表す文章になるように[ ] 内の単語を並べ替えてください。

登場人物:リスはりす君、金髪の子はハナちゃん、青い髪の子はりかちゃんです。

How long have youの挿絵

1. Hana [ glasses / was / since / worn / she / has ] a child.
→Hana has worn glasses since she was a child.
ハナは子供の頃からずっとメガネをかけています。

worn は wear の過去分詞です。wear は「身に着けている」という状態を表す動詞なので、「has been wearing」ではなく「has worn」を使います。

2. They [ five hours / have / singing / for / been ].
→They have been singing for five hours.
彼らは5時間ずっと歌っています。

「歌う」という動作を継続すると「歌っている」状態、つまり be singing になります。したがって「ずっと歌っている」は現在完了進行形の「have been singing」で表します。

3. It [ been / raining / day / has / all ].
→It has been raining all day.
一日中ずっと雨が降っています。

「It is raining.」が現在完了進行形になった形です。

4. Rika [ wanted / be / has / all / a doctor / to ] her life.
→Rika has wanted to be a doctor all her life.
りかは生まれてこのかたずっと医者になりたいと思い続けてきた。

want も動作ではないので「has wanted」の形で継続を表します。今も夢を捨てていないことがわかります。

5. We [ since / have / I / together / been ] was a baby.
→We have been together since I was a baby.
私たちは私が赤ちゃんだった時からずっと一緒だ。

「We are together.」を現在完了で表した形です。

for・since・agoの違いと使い分け方

現在完了形でよく使うforとsince、過去形で使うagoの違いと使い分け方を見ていきましょう。

forとsinceを使った現在完了形

  • 英語の勉強を6年間続けています。
  • 初めて出会った時からずっと好きだったの。

など、継続を表す現在完了形の文章に欠かせないのが for (~の間) と since (~以来)です。

forの後には期間を表す言葉が、since の後には始点を表す言葉が続きます。(since の後には名詞・文章のどちらも使うことが可能)

英語のforとsinceの違い

Kate and I have been friends for 20 years. (× since 20 years)
ケイトと私は20年間友達です。

I’ve been studying English for 6 years.
私は英語の勉強を6年間続けています。

具体的な数字の代わりに「長い間」や「しばらく」といった意味の語句を使うこともあります。

We haven’t seen each other for a while.
久しぶりね。

Kate and I have been friends since 1993.
ケイトと私は1993年以来ずっと友達です。

Kate and I have been friends since we were in high school.
ケイトと私は高校時代からの友人です。

It’s been raining since this morning.
今朝からずっと雨が降っています。

agoを使った過去形

同じ事実でも伝え方で違った時制で表すことができます。

例えば「Kate and I have been friends for 20 years.」の場合、20年間友達ということは「20年前に友達になった」ということです。これを ago を使って過去形で表すと次のようになります。

Kate and I became friends 20 years ago.

このように同じような意味を現在完了ではなく過去形で伝えることもできます。

もう1つ例を挙げましょう。結婚して3年目になる夫婦がいるとします。彼らの関係を説明すると次のようになります。

agoの説明

How long have they been married?
彼らは結婚してどれくらいになりますか。

They’ve been married for 3 years.
3年になります。

When did they get married?
彼らはいつ結婚しましたか。

They got married 3 years ago.
3年前です。

「結婚する」は get married、「結婚している」は be married で表します。プロポーズでよく言うセリフは“Will you marry me?”(私と結婚してくれませんか。)です。

for・since・agoの違いと使い分け方がわかる練習問題

for・since・agoの違いと使い分け方がわかる練習問題です。

Q1. ( ) にfor, since, agoの中から最も適切なものを入れてください。同じものを何回使っても構いません。

1. I’ve known Paul ( ) he was a baby.
2. Sarah got married only a month ( ).
3. It’s been raining on and off ( ) the past couple days.
4. Liz has been out of work ( ) quite a while.
5. We haven’t heard from him ( ) the end of last year.

Q2. ( ) に適切な単語を入れてA, Bがほぼ同じ内容を表す文章になるようにしてください。ただし同じものを2回以上使えません。

1. A : The pain started about 3 days ( ). It hasn’t gone away.
B : The pain has lasted for 3 days.

2. A : Anna first met her boyfriend last summer. They are still dating.
B : Anna and her boyfriend have been dating ( ) last summer.

3. A : It was hot when I got up this morning. It’s almost midnight and still hot.
B : It’s been hot ( ) day.

4. A : I saw Jack a few weeks ago. I haven’t seen him since then.
B : I haven’t seen Jack ( ) a few weeks.

Q3. ( ) にあてはまる最も適切な単語を下の[ ] の中からから選び、自然な会話文を完成させてください。ただし、それぞれ1回ずつしか使えません。

[ always for since ago ]

Cathy:Hi, Sue! It’s been a while ( ) we last met. How have you been?
Sue:It’s nice to see you again, Cathy. Guess what. I’ve got a baby on the way.

Cathy:Wow, congratulations! When did you know that? When is the baby due?
Sue:I heard it from my doctor just a few days ( ). And the baby is due in mid-May.  Henry and I have been married ( ) 8 years,  and we’ve ( ) wanted a baby.

Cathy:Yeah, I know. I’m so happy for you.

*a baby on the way: もうすぐ生まれてくる赤ちゃん
due: 生まれる予定

for・since・agoの違いと使い分け方がわかる練習問題の解説

for・since・agoの違いと使い分け方がわかる練習問題の解説です。

Q1. ( ) にfor, since, agoの中から最も適切なものを入れてください。同じものを何回使っても構いません。

1. I’ve known Paul (since) he was a baby.
私はポールが赤ちゃんだった頃から彼を知っています。

現在完了の since に続く文は過去形(was)になります。

2. Sarah got married only a month (ago).
サラはほんの1ヶ月前に結婚したばかりです。

「結婚する」と「結婚している」は別の表現になるので注意しましょう。

3. It’s been raining on and off (for) the past couple days.
この2日間雨が降ったりやんだりしています。

a couple は基本的に2を意味しますが、a couple (of) = a few の意味で使われることもあります。

4. Liz has been out of work (for) quite a while.
リズはかなり長い間仕事をしていません。(失業中)

a while は期間を表す語句なので for を使います。
for quite a while ≒ for a long time

quiteは「かなり」という意味です。

5. We haven’t heard from him (since) the end of last year.
彼からは昨年末から連絡がありません。

hear from は「~から便りをもらう」という意味です。

Q2. ( ) に適切な単語を入れてA, Bがほぼ同じ内容を表す文章になるようにしてください。ただし同じものを2回以上使えません。

1. A : The pain started about 3 days (ago). It hasn’t gone away.
B : The pain has lasted for 3 days.
その痛みは3日ほど前に始まった。まだ消えていない。
その痛みは3日続いている。

last は動詞になると「続く」という意味を表します。

2. A : Anna first met her boyfriend last summer. They are still dating.
B : Anna and her boyfriend have been dating (since) last summer.
アンナは去年の夏初めて彼に出会った。2人(彼ら)は今も付き合っている。
アンナと彼は去年の夏からずっと付き合っている。

first = for the first time(初めて)

「Anna met her boyfriend for the first time last summer.」とと言い換えることもできます。

3. A : It was hot when I got up this morning. It’s almost midnight and still hot.
B : It’s been hot (all) day.
今朝起きた時暑かった。もうすぐ夜中だけどまだ暑い。
一日中暑い。

4. A : I saw Jack a few weeks ago. I haven’t seen him since then.
B : I haven’t seen Jack (for) a few weeks.
数週間前ジャックに会いました。それ以来彼に会っていません。
数週間ジャックに会っていません。

Q3. ( ) にあてはまる最も適切な単語を下の[ ] の中からから選び、自然な会話文を完成させてください。ただし、それぞれ1回ずつしか使えません。

[ always for since ago ]

Cathy:Hi, Sue! It’s been a while (since) we last met. How have you been?
Sue:It’s nice to see you again, Cathy. Guess what. I’ve got a baby on the way.

Guess what は相手の注意を引くために使うセリフです。

Cathy:Wow, congratulations! When did you know that? When is the baby due?
Sue:I heard it from my doctor just a few days (ago). And the baby is due in mid-May.  Henry and I have been married (for) 8 years,  and we’ve (always) wanted a baby.

Cathy:Yeah, I know. I’m so happy for you.

< 全文訳 >
キャシー「ハーイ、スー!久しぶりね。(前に会ってからしばらく経ったわね。)元気にしてた?」
スー「又会えてとても嬉しいわ、キャシー。ねえ、聞いて。赤ちゃんができたの。」

キャシー「わあ、おめでとう!いつ知ったの?いつ生まれるの?」

スー「ほんの2、3日前にお医者さんから聞いたのよ。赤ちゃんは5月中旬に生まれる予定ですって。ヘンリーとは結婚して8年目になるし、ずっと赤ちゃんが欲しかったの。」

キャシー「そうよね、わかるわ。本当に良かった。」

happy for you は相手の気持ちになって喜んでいることを表す言葉です。

まとめ

現在完了形と現在完了進行形は訳すことよりもなるべく多くの会話文に触れることで理解が深まります。状況を想像しながら時制の感覚をつかめるようにがんばって行きましょう。