本文へスキップ
日刊原田英語 Harada Eigo Daily
GRAMMAR 第55回 標準 読了 9分

現在完了の使い方は?yesterday と一緒に使えない理由

入試対策講座|第55回

I lost my wallet yesterday. は正しいのに、I have lost my wallet yesterday. は間違いです。どちらも「財布をなくした」と訳せてしまう現在完了と過去形を、文の中の時を表す語を手がかりに使い分けます。

監修:原田高志(原田英語.com)

「昨日、財布をなくしてしまった」。日本語では、「昨日」と「〜てしまった」を、同じ文に入れられます。ところが英語では、現在完了と yesterday を、同じ文に入れられません。今日は、その理由と、時の語から決める見分け方を解きます。

なぜ現在完了は、yesterday と一緒に使えないのか

次の3つの英文を、日本語にしてみてください。

① I lost my wallet yesterday.
② I have lost my wallet.
③ I have lost my wallet yesterday.

日本語にすると、①②③は、どれも「財布をなくした」になりそうです。

ところが、③だけが間違いです。

正しい文と間違いの文を分けているのは、いったい何なのでしょうか。

考えられる答え

仮説1 現在完了は、過去と現在を足した形。だから過去の語を足しても問題ない

「過去のことが、いま終わった」という形なので、yesterday を足せそうに見えます。 ただ、③のとおり、足すと文が成り立ちません。現在完了は、過去形に何かを足した形ではなく、別の働きをする形です。

仮説2 現在完了には、経験・完了・継続の3つの用法がある

この分け方は正しく、入試でも点が取れます。ever や never があれば経験、already や yet があれば完了、for や since があれば継続、と見分けられます。 ただ、これだけでは、③が間違いの理由が説明できません。「財布をなくした」は完了のはずなのに、yesterday を足すだけで、なぜ間違いになるのかが残ります。

仮説3 現在完了は「いま」の話。過去の1点を示す語を置くと、「いま」が消える

I have lost my wallet. は、「財布をなくして、いまもない」という、いまの状態を伝える形です。 ここに yesterday を置くと、話の中心が「昨日の1点」に移ります。「いま」とのつながりが切れるので、現在完了ではなく、過去形の I lost になります。

真相

時制

現在完了は、過去の出来事を「いま」につなげて言う形。yesterday・last week・ago・when のように、過去の1点を指す語があると、「いま」とのつながりが切れるので、過去形を使う。

have[has]+過去分詞(過去の1点を示す語とは使わない)

文の中の「時を表す語」を見て、2ステップで決めます。

① 過去の1点を指す語はありますか?
・yesterday / last night / last year
・three days ago(〜前)
・in 2020 / then / just now
・When ...?(いつ〜?)という疑問文

1つでもあれば、過去形です。I saw him yesterday. / When did you come here?

② なければ、「いま」とつながる語を探します。
・経験 … ever / never / before / 〜 times
・完了 … already / just / yet
・継続 … for +期間(for three years)/ since +起点(since 2020)

どれかがあれば、現在完了です。I have never seen him. / She has lived here for three years.

財布の文で、2つの形の違いを見ます
・I lost my wallet. … 過去にやった、という事実だけを言います。いま見つかったかどうかは、この文からは分かりません。
・I have lost my wallet. … いまも財布がない、という状態までつたわります。

時の語を先に探す。それが、いちばん速い決め手です。

日本語の頭が、ここで邪魔をする

日本語には、「昨日、財布をなくしてしまった」のように、「昨日」と「〜てしまった」を同じ文に入れられる癖があります。時を表す語と、完了の形が、日本語では同居できるのです。

そのため、英語でも、yesterday と have lost を一緒に書きたくなります。

知らなかっただけで、あなたの理解力の問題ではありません。英語では、時の語が過去の1点を指していたら、過去形にする。それだけを覚えておけば足ります。

ここでつまずく

いちばん多いのは、過去の1点を指す語と、現在完了を並べる誤りです。

✕ I have seen him yesterday.
○ I saw him yesterday.

✕ He has come here three days ago.
○ He came here three days ago.

もう1つは、When ...? を現在完了で聞く誤りです。

✕ When have you finished your homework?
○ When did you finish your homework?

さらに、継続を表す文で since のあとに期間を置く誤りもあります。

✕ I have lived here since five years.
○ I have lived here for five years.(期間は for / 起点は since)

yesterday・ago・when があれば過去形。for・since・already・ever があれば現在完了。

時の語から時制を決める力を手に入れる

文の中の yesterday・ago・for・since などから、過去形か現在完了かを、その場で決められるようになります。

空所補充でも誤文訂正でも、まず時の語を探せば、迷う時間が減ります。長文でも、筆者が「いま」の話をしているのか、「過去の1点」の話をしているのかが読めます。

例文で確かめる

I lost my wallet yesterday.

昨日、財布をなくしました。

yesterday は過去の1点を指す語なので、過去形。

I have lost my wallet, so I can't pay.

財布をなくしてしまったので、払えません。

いまも財布がない、という「いま」の話。

She has lived in Osaka for three years.

彼女は、3年間、大阪に住んでいます。

for three years は期間を表し、いまもつづく現在完了。

When did you finish your homework?

いつ、宿題を終えましたか。

When ...? の疑問文は、過去形で聞く。

Before

現在完了を「過去形のていねいな言い方」と覚えていて、時の語を見ずに、勘で選んでいた。yesterday と一緒に書いて、誤文訂正で取りこぼしていた

After

yesterday・ago・when があれば過去形、for・since・already・ever があれば現在完了と、時の語を見て、その場で決められる。「いま」の話かどうかを、文の中の語から確かめられる

For Teachers

明日の授業、この15分で「現在完了と過去形の使い分け(yesterday・ago・when と一緒に使えない理由)」が終わります

導入の問いかけ(3分)

  • 「「昨日、財布をなくしました、を英語にしてください」と言って、何人かに黒板へ書かせます」
  • 「「I have lost my wallet. と I lost my wallet. は、どちらも日本語では『財布をなくした』です。いま、財布は手元にありそうですか、なさそうですか」と聞きます」
  • 「「I have seen him yesterday. は間違いです。何が合わないと思いますか」と問いかけます」

板書はこの1行だけ

yesterday・ago・last ~・When ...? → 過去形/ever・already・yet・for・since → 現在完了

ペアワーク/全体討論(5分)

「隣の人と、次の2文の誤りを探して直してください。①I have visited Kyoto last year. ②When have you finished your homework? 答えを書く前に、『時を表す語は何か』を相手に言ってから直します」5分。

  • ①は I visited Kyoto last year.、②は When did you finish your homework? です。①を I have visited Kyoto. に直したペアには、「last year をどうしましたか。消して、意味は同じですか」と声をかけてください。

レベル別ミニ問題(5分)

標準

空所に入れなさい。She ( ) in Osaka since 2020. (lives / lived / has lived / is living)

答え:has lived ※since 2020(2020年から)があるので、いまもつづく現在完了

難関

誤りを1か所直しなさい。I have met her three days ago.

答え:have met → met ※three days ago(3日前)は過去の1点を指すので、過去形にする

出口チケット(2分)

「昨日、宿題を終えた」と「宿題をもう終えた」を、それぞれ英語で書いてください

MAKE IT YOURS

AIに貼ると、この項目だけを狙った練習問題が、あなた用に出てきます。

あなたは大学入試英語の指導者です。現在完了と過去形の使い分けを確かめる練習問題を6問作ってください。条件は次のとおりです。①yesterday・ago・last year・When など、過去の1点を指す語がある問題を3問、for・since・already・ever など、現在完了になる語がある問題を3問にする。②そのうち2問は、時の語が無く、前後の文の「いま」とのつながりで決まる問題にする。③空所補充を4問、誤文訂正を2問にする。④解答には、「時を表す語は何か」で一言理由を添える。⑤私が答えるまで解答を見せない。

動画で見る

現在完了と過去形の使い分けを取り上げた、英語の文法レッスン動画 (BBC Learning English) 英語です。題名のとおり、現在完了と過去形の違いを取り上げた文法レッスンです。

確認クイズ

  1. Q1. ( ) に入れるのに最も適切なものはどれか。I ( ) this movie yesterday.(私は昨日、この映画を見ました)

  2. Q2. ( ) に入れるのに最も適切なものはどれか。We ( ) each other for five years.(私たちは、5年間、おたがいを知っています)

よくある質問

現在完了と過去形は、何が違うのですか?

現在完了は、過去の出来事を「いま」とつなげて言う形です。過去形は、過去の1点の出来事として言います。yesterday や ago のような過去の1点を指す語があれば、過去形を使います。

just now は、現在完了と一緒に使えますか?

使えません。just now は「ついさっき」という過去の1点を指すので、過去形と使います。I saw him just now. のように言います。just だけなら、I have just finished. のように、現在完了と使えます。

for と since は、どう使い分けますか?

for のあとには期間を置き、since のあとには起点を置きます。for three years(3年間)、since 2020(2020年から)です。どちらも、いまもつづく話なので、現在完了と使います。