過去に起きたことを、今とつなげて言うための形です。
形は have / has + 過去分詞 の1つだけで、変化するのは have の部分だけです。
用法は完了・結果/経験/継続/完了進行の4つに分かれます。
過去形との違いは「今を見ているかどうか」の一点だけです。
最後に練習問題10問を置きました。
現在完了形とは|過去のことを「今」につなげて言う形
現在完了形(present perfect)は、過去に起きた出来事を、今どうなっているかとセットで伝える形です。
英語の辞書は、この形を「過去の(たいていは完了した)行為を、現在への結果とともに表す完了時制」と説明しています。
大事なのは「結果が今もある」という点です。
I lost my wallet. は「財布をなくした」という過去の出来事だけを言っています。
I have lost my wallet. は「なくして、今も手元にない」まで言っています。
日本語にすると同じ「なくした」ですが、英語は今の状態まで含めるかどうかで形を変えます。
perfect という名前も、この考え方から来ています。
ラテン語の perfectus(perficere「やり終える」の過去分詞)が語源で、per「完全に」+ facere「作る・する」でできた語です。
1300年ごろに parfit という形で英語に入り、1500年ごろに動詞の時制を指す文法用語として使われはじめました。
言語学者オットー・イェスペルセンは、この完了形を「振り返る現在(a retrospective present)=過去の出来事を現在の時点につなぐもの」と説明しています。
つまり現在完了形は、過去の話ではなく「現在の話」です。
この一点さえ外さなければ、あとの用法はすべて枝分かれにすぎません。
現在完了形の作り方|have / has + 過去分詞
形は1つだけです。
主語に合わせた have または has + 動詞の過去分詞 を並べます。
| 主語 | 肯定文 | 否定文 | 疑問文 | 例 |
|---|---|---|---|---|
| I / you / we / they | have + 過去分詞 | have not(haven’t) | Have you finished? | I have finished it. |
| he / she / it | has + 過去分詞 | has not(hasn’t) | Has he finished? | She has finished it. |
変わるのは have と has だけで、過去分詞は主語が何であっても変わりません。
注意点は、完了形を作る have には do を使わないことです。
Do you have seen it? とは言わず、Have you seen it? と have をそのまま前に出します。
否定も同じで、I don’t have seen it ではなく I have not seen it です。
過去分詞は4つの型で覚える
現在完了形でつまずく原因の大半は、過去分詞そのものを知らないことです。
原形・過去形・過去分詞の変わり方で整理すると、覚える量が一気に減ります。
| 型 | 原形 | 過去形 | 過去分詞 |
|---|---|---|---|
| A・B・C 型(3つとも違う) | be / do / go / see / eat | was, were / did / went / saw / ate | been / done / gone / seen / eaten |
| A・B・C 型(つづき) | write / take / give / speak / break / know | wrote / took / gave / spoke / broke / knew | written / taken / given / spoken / broken / known |
| A・B・B 型(過去形と同じ) | buy / bring / find / make / have / meet / leave / lose | bought / brought / found / made / had / met / left / lost | bought / brought / found / made / had / met / left / lost |
| A・B・A 型(原形に戻る) | come / become / run | came / became / ran | come / become / run |
| A・A・A 型(3つとも同じ) | put / cut / read / let / set | put / cut / read / let / set | put / cut / read / let / set |
read だけは、つづりが同じでも過去形と過去分詞は「レッド」と読みます。
規則動詞は過去形も過去分詞も -ed なので、覚え直す必要はありません。
現在完了形の4つの用法一覧
形が1つなのに意味が4つに分かれるため、一緒に使う語で見分けます。
| 用法 | 意味 | 一緒に使う語 | 例文 |
|---|---|---|---|
| 完了・結果 | もう〜してしまった(その結果が今ある) | just / already / yet | I have just finished my homework. |
| 経験 | 今までに〜したことがある | ever / never / before / twice | I have been to Kyoto twice. |
| 継続 | ずっと〜している(状態) | for / since / how long | She has lived here for ten years. |
| 完了進行 | ずっと〜し続けている(動作) | for / since / all day | It has been raining since this morning. |
見分け方は、意味を考えるより先に一緒にある語を探すほうが速いです。
【完了・結果】現在完了形の用法①|「もう終わって、今こうなっている」
いちばん基本の使い方です。
「その動作が終わった」+「だから今こうなっている」を伝えます。
I have already eaten lunch.── もう食べ終わっている(だから今おなかがすいていない)The train has just left.── 電車はもう出てしまった(だから今この場にない)I have not finished my homework yet.── まだ宿題が終わっていない(だから今できない)She has gone home.── 彼女は行ってしまった(だから今この場にいない)
カッコの中が、現在完了形が本当に伝えている部分です。
just / already / yet の3語は、この用法の目印になります。
already は肯定文で「もう」、yet は否定文で「まだ」、疑問文で「もう」の意味になります。
Have you finished your report yet? のような文が作れるのも、この用法です。
【経験】現在完了形の用法②|「今までに〜したことがある」
生まれてから今日までの間に、その経験があるかどうかを言う使い方です。
ever / never / before / once / twice / 〜 timesが目印になります。
Have you ever been to Paris?── パリに行ったことがありますかI have never seen snow.── 雪を見たことが一度もありませんI have read that book twice.── その本は2回読んだことがありますI have met him before.── 彼には以前に会ったことがあります
この用法で必ず質問が出るのが、been to と gone to の違いです。
| 形 | 意味 | 例文 |
|---|---|---|
| have been to 〜 | 〜へ行ったことがある(今は戻っている) | I have been to Hawaii twice. |
| have gone to 〜 | 〜へ行ってしまった(今この場にいない) | He has gone to Hawaii. |
| have been in 〜 | 〜にずっといる(継続) | She has been in London since May. |
been to は経験、gone to は結果です。
I have gone to Hawaii. と言うと、「私は今ハワイにいて、この場にはいない」ことになります。
自分のことを言うときは、まず been to を選んでください。
【継続】現在完了形の用法③|「ずっと〜している」
過去のある時点から今まで、同じ状態が続いていることを言う使い方です。
for(長さ)と since(起点)が目印です。
She has lived here for ten years.── 10年間ここで暮らしていますI have known him since we were children.── 子どものころから彼を知っていますHe has wanted a new bike for months.── ずっと新しい自転車をほしがっていますHow long have you been in Japan?── どのくらい日本にいますか
この用法で使えるのは、状態を表す動詞が中心です。
know / live / have / want / like / believe / belong のような動詞は、そのまま現在完了形で継続を表せます。
一方、動作を表す動詞(work / study / rain / wait など)で継続を言うときは、次の現在完了進行形にします。
現在完了進行形|現在完了形の継続を「動作」で言う形
形は have / has been + -ing です。
現在完了形と現在進行形を重ねた形で、動作がずっと続いていることを表します。
| 形 | 何が続いているか | 作り方 | 例文 |
|---|---|---|---|
| 現在完了形(継続) | 状態が続いている | have / has + 過去分詞 | I have known her for ten years. |
| 現在完了進行形 | 動作が続いている | have / has been + -ing | I have been waiting for an hour. |
know を進行形にできないのは、know が動作ではなく状態だからです。
I have been knowing her は成立せず、I have known her が正しい形になります。
逆に I have been waiting は、「1時間待っていて、今もまだ待っている」という動作の continuity を強く出します。
It has been raining since this morning. も、雨がまだ降っている場面で使われます。
雨がやんだあとなら It has rained a lot this week. のように現在完了形にします。
現在完了形と過去形の違い|分かれ目は1つだけ
日本語にすると同じ訳になるため、ここがいちばん混乱するところです。
判定はただ1つ、「今を見ているか、過去の一点を見ているか」だけです。
| 見るところ | 過去形 | 現在完了形 |
|---|---|---|
| 見ている時点 | 過去のある一点 | 今 |
| 今とのつながり | 切れている | つながっている |
| 一緒に使う語 | yesterday / last week / 〜 ago / in 2020 | just / already / yet / ever / never / for / since |
| 例文 | I lost my key yesterday. | I have lost my key. |
| その文が伝えること | 昨日なくしたという出来事だけ | なくして、今も見つかっていない |
| 疑問文 | When did you lose it? | Have you lost it? |
When で始まる疑問文は、過去の一点を聞く形なので現在完了形と一緒には使えません。
When have you arrived? ではなく When did you arrive? です。
逆に Have you arrived? は「もう着いた?」という今の状態を聞く形で、こちらは自然です。
日本語の「〜した」は両方に対応してしまうので、英語にするときは必ず「今どうなっているか」を言いたいのかどうかを判定してください。
現在完了形の for と since の違い
継続の用法で必ず出てくる2語です。
for は「長さ」、since は「起点」。
| 語 | 何を表すか | うしろに来るもの | 例文 |
|---|---|---|---|
| for | 期間の長さ(どのくらい) | for three years / for a week / for a long time | I have worked here for three years. |
| since | 起点(いつから) | since 2020 / since Monday / since I came to Japan | I have worked here since 2020. |
since のうしろには、時点だけでなく「文」も置けます。
since I came to Japan のように、うしろの文は過去形にします。
よくある誤りは、since のうしろに期間を置いてしまうことです。
since three years は成立せず、for three years が正しい形です。
How long have you lived here? には、for でも since でも答えられます。
現在完了形と一緒に使う副詞一覧|already / yet / just / ever / never
現在完了形は、相性のよい副詞が決まっています。
副詞を見れば、どの用法かがその場で分かります。
| 副詞 | 意味 | 置く位置 | 例文 |
|---|---|---|---|
| already | もう・すでに(肯定文) | have と過去分詞の間 | I have already sent the email. |
| yet | まだ(否定文)/もう(疑問文) | 文末 | I have not decided yet. / Have you decided yet? |
| just | ちょうど今 | have と過去分詞の間 | She has just arrived. |
| ever | 今までに(疑問文) | have と過去分詞の間 | Have you ever tried natto? |
| never | 一度も〜ない | have と過去分詞の間 | I have never been abroad. |
| before | 以前に | 文末 | I have seen this film before. |
| recently / lately | 最近 | 文末 | He has changed a lot recently. |
| once / twice / 〜 times | 1回・2回・〜回 | 文末 | I have read it three times. |
| for / since | 〜の間・〜以来 | 文末 | We have been friends since 2015. |
| how long | どのくらいの間 | 文頭 | How long have you studied English? |
already は現在完了形だけでなく、過去完了形・未来完了形・単純未来とも一緒に使えます。
位置は「have と過去分詞のあいだ」か「文末」の2つしかありません。
I already have sent it ではなく I have already sent it の順です。
現在完了形と一緒に使えない語|yesterday を置いた時点で壊れる
現在完了形は「今」を見ている形です。
だから、終わってしまった過去の一点を指す語とは同居できません。
| 使えない語 | × 成立しない形 | ○ 過去形にする |
|---|---|---|
| yesterday | I have seen him yesterday. | I saw him yesterday. |
| last night / last week | I have called you last night. | I called you last night. |
| 〜 ago | I have met her three days ago. | I met her three days ago. |
| in 2020(過ぎた年) | I have visited Kyoto in 2020. | I visited Kyoto in 2020. |
| then / at that time | I have lived there then. | I lived there then. |
| When 〜? | When have you finished it? | When did you finish it? |
理由はどれも同じで、これらの語が「終わった一点」を名指ししているからです。
today / this week / this month / this yearは、まだ終わっていない期間なので現在完了形と一緒に使えます。
I have met him three times this week. は「今週はまだ終わっていないが、その中で3回会った」という自然な文です。
現在完了形の短縮形と発音|I’ve と he’s は音がほとんど残らない
会話では、have と has はほぼ必ず短縮されます。
聞き取れない原因は、単語を知らないことではなく、短縮形の音を知らないことです。
| 短縮形 | もとの形 | 音のポイント |
|---|---|---|
| I’ve | I have | /aɪv/ と読み、have の音はほぼ残らない |
| you’ve | you have | have が /v/ ひとつに縮む |
| we’ve / they’ve | we have / they have | 同じく /v/ だけが残る |
| he’s / she’s | he has / she has | うしろが過去分詞なら has、形容詞や名詞なら is |
| it’s | it has / it is | 同じく、うしろの形で判断する |
| haven’t / hasn’t | have not / has not | not が /nt/ に縮み、t はほとんど聞こえない |
have そのものにも、強く読む形と弱く読む形があります。
強形は英 /ˈhav/・米 /ˈhæv/ ですが、文の中では弱形の /(h)əv/になります。
h の音まで落ちるので、should have は「シュダヴ」のように聞こえます。
he’s の判別は、うしろに過去分詞があるかどうかだけで決まります。
He’s gone. なら has、He’s busy. なら is です。
現在完了形でよくある失敗3つ
① 過去を指す語をつけてしまう
I have met him yesterday. は、日本語の「昨日会った」をそのまま英語にしたときに出る形です。
yesterday がある時点で、その文は過去の一点を指しています。
過去を指す語が1語でも入ったら、迷わず過去形にしてください。
② since のうしろに期間を置く
since three years は、日本語の「3年前から」を直訳した形です。
since が求めるのは起点なので、since 2023 か for three years にします。
「〜前から」と言いたいときは since three years ago という形なら成立します。
③ 状態動詞を進行形にする
I have been knowing him for years. のように、know を進行形にしてしまう形です。
know は動作ではなく状態なので、進行形にはしません。
正しくは I have known him for years. です。
know / like / want / have(持つ)/believe / belongは、原則として現在完了進行形にしません。
現在完了形の練習問題10問|答えと解説つき
上の表を閉じてから解いてください。
7問正解で合格です。
- I ( have finished / finished ) my homework already.
- She has lived here ( for / since ) 2018.
- ( Did you ever / Have you ever ) been to Australia?
- He ( has gone / has been ) to Osaka, so he is not here now.
- I ( have seen / saw ) him yesterday.
- It has ( rained / been raining ) since this morning, and it is still raining.
- I have known her ( for / since ) ten years.
- ( When have you / When did you ) arrive?
- He has ( went / gone ) out.
- I have not finished it ( already / yet ).
- have finished ── already は現在完了形と組む副詞。「もう終わっていて、今その状態にある」。
- since ── 2018 は起点なので since。長さを言うなら for five years の形。
- Have you ever ── 経験を聞く形。ever は現在完了形と一緒に使います。
- has gone ── 「行ってしまって今この場にいない」は gone。been to なら「行ったことがある」で、今この場にいる意味になります。
- saw ── yesterday があるので過去形。現在完了形とは同居できません。
- been raining ── 今も降っているので、動作が続いていることを表す現在完了進行形。
- for ── ten years は長さなので for。since なら since 2016 のような時点が要ります。
- When did you ── When は過去の一点を聞く形なので、現在完了形とは組めません。
- gone ── have のうしろは過去分詞。went は過去形なので置けません。
- yet ── 否定文で「まだ」は yet。already は肯定文で「もう」。
間違えた問題は、その用法の章に戻ってください。
失点のほとんどは、用法を知らないことより、一緒に使う語との組み合わせを覚えていないことが原因です。
現在完了形についてよくある質問
- 現在完了形と過去形は、どちらを使えばよいですか
-
今の状態まで伝えたいなら現在完了形、過去の出来事だけを伝えたいなら過去形です。判定は文の中の語で決まります。yesterday / last week / 〜 ago / in 2020 のように過去の一点を指す語があれば過去形、just / already / yet / ever / never / for / since があれば現在完了形になります。
- have been to と have gone to はどう違いますか
-
have been to は「行ったことがある」という経験で、話している今はこの場に戻っています。have gone to は「行ってしまった」という結果で、今この場にいません。自分のことを言うときは、ふつう been to のほうを使います。
- 現在完了形は日本語のどの言い方にあたりますか
-
決まった訳はありません。完了なら「もう〜した」、経験なら「〜したことがある」、継続なら「ずっと〜している」と、用法ごとに日本語が変わります。訳から入るとかえって混乱するので、「今どうなっているかまで言いたいか」で選ぶほうが早く身につきます。
- 現在完了形と現在完了進行形は、どう使い分けますか
-
続いているのが状態なら現在完了形、動作なら現在完了進行形です。know / live / like / want のような状態動詞は進行形にしません。work / study / wait / rain のような動作動詞で「今も続いている」と言いたいときは、have been 〜ing の形にします。
- 会話でも現在完了形は使いますか
-
よく使われますが、ほとんどが短縮形です。I have は I’ve、he has は he’s、have not は haven’t になり、have の音はほぼ残りません。聞き取りでは、動詞が過去分詞になっているかどうかを手がかりにしてください。
まとめ|現在完了形の使い方
- 現在完了形はhave / has + 過去分詞の1つの形だけ。過去の話ではなく現在の話
- 用法は完了・結果/経験/継続/完了進行の4つ
- 過去形との分かれ目は「今を見ているか」という一点だけ
- yesterday / last week / 〜 ago / in 2020 / When 〜?は現在完了形と同居できない
- for は長さ、since は起点。since のうしろに期間は置かない
- 迷ったら「今どうなっているかまで言いたいか」を自分に聞くと、過去形との選択が1秒で決まります
用法の名前を暗記する必要はありません。
一緒に使う副詞の表だけ覚えておいて、必要になったらこのページに戻ってくる使い方で十分です。
出典・参考文献|現在完了形
この記事の語源と発音記号、および文法用語の定義についての記述は、以下の資料で確認しました(最終確認:2026年9月5日)。
例文・日本語訳・表の分類は、当サイトが作成したものです。
- perfect の語源(ラテン語 perfectus=perficere「やり終える」の過去分詞/per「完全に」+ facere「作る・する」/1300年ごろ parfit として英語へ/1500年ごろ動詞の時制を指す文法用語になったこと/イェスペルセンによる「過去の出来事を現在の時点につなぐ、振り返る現在」という説明)= Online Etymology Dictionary「perfect」
- present perfect の定義(「過去の(たいていは完了した)行為を、現在への結果とともに表す完了時制」/英語では have の現在形+過去分詞で作ること)= Wiktionary「present perfect」
- have の強形(英 /ˈhav/・米 /ˈhæv/)と弱形 /(h)əv//完了形を作る助動詞の have は do を使わないこと(Have you seen it? を Do you have seen it? とは言わない)= Wiktionary「have」
- I’ve が I + have の短縮形で、発音が /aɪv/ であること= Wiktionary「I’ve」
- already が現在完了形・過去完了形・未来完了形・単純未来と一緒に使えること= Wiktionary「already」
記述の誤りを見つけられた場合は、訂正の根拠となる資料とあわせてご連絡ください。確認のうえ、修正した日付を明記して直します。

コメント