現在完了は「今」の話をしている
まず大事なのは、現在完了は名前のとおり「現在」の一種だということです。
- 過去形:過去のある時点の出来事を、今とは切り離して話す
- 現在完了:過去から今までの出来事を、今の状態とつなげて話す
例文で比べる
- I lost my key.
(鍵をなくした。)→ 過去にあった出来事の報告。今見つかっているかはわからない。
- I have lost my key.
(鍵をなくしてしまった〔今も手元にない〕。)→ 今、困っている状態が伝わる。
have は「持っている」という意味の動詞でした。現在完了は「過去の出来事の結果を、今も持っている」と考えると覚えやすくなります。
ポイント:現在完了を見たら「で、今どうなっているの?」を想像する。
3つの用法を例文でつかむ
学校文法では、現在完了を「完了・経験・継続」の3用法に分けます。どれも「今とつながっている」点は共通です。
① 完了・結果:ちょうど〜したところ/〜してしまった
- I have just finished my homework.
(ちょうど宿題が終わったところだ。)
- The train has already left.
(電車はもう出てしまった。)
- Have you eaten lunch yet?
(もうお昼ごはん食べた?)
よく一緒に使う語:just、already、yet
② 経験:〜したことがある
- I have been to Okinawa twice.
(沖縄には2回行ったことがある。)
- Have you ever tried natto?
(納豆を食べてみたことある?)
- I have never seen snow.
(雪を見たことがない。)
よく一緒に使う語:ever、never、before、once、twice、〜 times
③ 継続:ずっと〜している
- I have lived in Osaka for ten years.
(大阪に10年住んでいる。)
- We have known each other since high school.
(私たちは高校時代からの知り合いだ。)
よく一緒に使う語:for(期間)、since(起点)、How long
ポイント:用法の名前を覚えるより、一緒に使う語をセットで覚えるほうが実戦で役立ちます。
日本人がやりがちな現在完了の間違い
① はっきりした過去の時点と一緒に使う
- × I have visited Kyoto last year.
- ○ I visited Kyoto last year.(去年京都を訪れた。)
yesterday、last year、〜 ago、When〜? のように「過去の一点」を示す語は、今とのつながりを切るので過去形を使います。
② When で現在完了を聞く
- × When have you arrived?
- ○ When did you arrive?(いつ着いたの?)
③ since と for の混同
- × I have studied English since three years.
- ○ I have studied English for three years.(3年間英語を勉強している。)
- ○ I have studied English since 2023.(2023年から英語を勉強している。)
for は「期間の長さ」、since は「始まった時点」です。
④ have been to と have gone to の混同
- I have been to London.(ロンドンに行ったことがある。)→ 経験
- She has gone to London.(彼女はロンドンに行ってしまった〔今ここにいない〕。)→ 結果
「私はロンドンに行ったことがある」を I have gone to London. とすると、話している自分がここにいないことになり、不自然です(アメリカ英語では経験の意味で使われる場合もありますが、試験では been to が基本です)。
現在完了進行形との違い
「ずっと〜している」は、現在完了進行形(have been -ing)でも表せます。
- I have been studying for three hours.
(3時間ずっと勉強している。)→ 動作が続いていることを強調。
- I have studied five chapters.
(5章分勉強した。)→ 終わった量・成果に注目。
使い分けの目安
- live、work、study など:どちらでも「継続」を表せることが多い
- know、like、have(所有)などの状態動詞:ふつう進行形にしない
- × I have been knowing him for years.
- ○ I have known him for years.(彼とは何年も前からの知り合いだ。)
- Why are you so tired?(なんでそんなに疲れてるの?)
- I've been running.(ずっと走ってたんだ。)→ 直前まで続いていた動作の結果として今疲れている、という自然な会話です。
試験でよく出る現在完了の問題パターン
英検や入試の文法問題では、現在完了は「一緒に使う語」で解ける問題がたくさんあります。
パターン① 時を表す語から判断
- I ( ) him since we were children.
→ since があるので継続。答えは have known。
(子どものころから彼を知っている。)
パターン② 時点を示す語で過去形を選ぶ
- She ( ) her homework two hours ago.
→ ago があるので過去形の finished。
(彼女は2時間前に宿題を終えた。)
パターン③ 「〜して…になる」の書き換え
- My grandfather died ten years ago.
= My grandfather has been dead for ten years.
= It has been ten years since my grandfather died.
(祖父が亡くなって10年になる。)
ポイント:問題文に下線を引くのは「時を表す語」。ここを見れば、現在完了か過去形かの大半は決まります。
現在完了が身につく1週間メニュー
1日15分を目安に、時制を「感じる」練習をしましょう。
- 月曜:3用法の例文を各2つ音読し、「今どうなっている?」を日本語で一言添える
- 火曜:just・already・yet・ever・never・for・since の8語で1文ずつ作る
- 水曜:過去形と現在完了のペア文を5組作る(I lost / I have lost など)
- 木曜:「〜したことある?」と自分に3つ質問し、Yes/No で英語で答える
- 金曜:自分の習い事や趣味について、How long を使った質問と答えを書く
- 土曜:英語の動画やニュースで have+過去分詞を聞き取れたらメモする
- 日曜:1週間分の文を見直し、yesterday などと一緒に使っていないかチェック
ポイント:自分のことを英語にすると、時制の感覚は一気に定着します。「私は〇年間〜している」は、自己紹介でそのまま使える表現です。
今日、I have lived in ___ for ___ years. の空欄を埋めて、声に出してみましょう。



