モチタン辞典 › 読みもの › 英文法 › 現在完了「継続」の用法と例文

英語の継続文法をマスターする解説
英語で「ずっと〜している」という継続を表す基本文法は、状態動詞を使うhave + 過去分詞(現在完了形)と、動作動詞を使うhave been + -ing(現在完了進行形)の2通りです。
日本語ではどちらも同じ「〜している」と表現するため混同されがちですが、動詞の種類と「動作の臨場感があるかどうか」に注目すると迷わず正確に使い分けられます。
英語の継続文法とは?まず全体像を整理
英語学習において「継続」という言葉を目にするとき、多くの場合は時制の文法項目である現在完了形の継続用法や現在完了進行形を指します。ただし、英文法では関係代名詞の非制限用法を「関係代名詞の継続用法」と呼ぶこともあります。
この記事では、時制として「過去のある時点から現在までずっと続いている状態や動作」を表す文法ルールについて詳しく解説します。
「〜している」を表す3つの時制の判定チャート
日本語の「〜している」という言葉を英語に直す際、現在進行形・現在完了形・現在完了進行形のどれを選ぶべきか迷う方が多く見られます。判断の基準は「期間があるかどうか」と「動詞の種類」です。
表は横にスクロールできます →
| 表現したい内容 | 判断の基準 | 使用する時制 | 基本公式 |
|---|---|---|---|
| 今まさに起きている一時的動作 | 過去とのつながりなし | 現在進行形 | am / is / are + -ing |
| 過去から続く「状態」 | 期間あり・状態動詞 | 現在完了形[継続] | have / has + 過去分詞 |
| 過去から続く「動作」 | 期間あり・動作動詞 | 現在完了進行形 | have / has been + -ing |
たとえば「今、本を読んでいる」ならI am reading a book now.です。一方で「2時間前から本を読んでいる」のように過去の起点や期間が加わると、現在進行形ではなく完了時制が必要になります。
さらにreadは動作を表す動詞なので、I have been reading a book for two hours.とするのが自然です。
英語の文法は、話して身につけよう。会話アプリ「モチスピ」英語を話して練習できる会話アプリ。話すたびに、発音・文法・自然さをその場で直してもらえます。無料で試す
現在完了形[継続]の基本公式と文の作り方
現在完了形[継続用法]のコアイメージは、「過去に始まったある状態が、途切れることなく現在までずっと届いている」という点にあります。過去の事実だけを述べる過去形とは異なり、今この瞬間もその状態が維持されている点が特徴です。
肯定文の公式
肯定文の語順は主語 + have / has + 過去分詞です。主語が三人称単数(he, she, it など)のときはhasを用い、それ以外ではhaveを用います。
- I have known Ken for ten years.(私はケンを10年間知っています。)
- She has been sick since last Monday.(彼女は先週の月曜日からずっと体調を崩しています。)
上記の例文のように、know(知っている)やbe(〜である)といった状態動詞と組み合わさることで、「過去から現在に至るまでの状態の継続」を示します。
否定文の公式
否定文はhaveやhasの直後にnotを置きます。短縮形としてhaven'tやhasn'tも頻繁に使われます。公式は主語 + have not / has not + 過去分詞です。
- I haven't seen him since yesterday.(私は昨日から彼に会っていません。)
- He hasn't heard from his sister for a month.(彼は妹から1か月間連絡をもらっていません。)
「〜していない状態が一定期間ずっと続いている」という意味になります。
疑問文の公式と期間を尋ねる表現
疑問文はHave / Has + 主語 + 過去分詞〜?の語順で作ります。返答はYes, I have.やNo, I haven't.のようにhave / hasを用いて答えます。
- Have you lived here for a long time?(あなたはここに長い間住んでいますか?)
- Yes, I have. / No, I haven't.(はい、住んでいます。/いいえ、住んでいません。)
継続期間を具体的に質問したいときは、疑問詞How longを文頭に置きます。この構文は日常会話や試験で非常によく使われます。
- How long have you been in Japan?(あなたは日本に来てどのくらいになりますか?)
- How long has she known him?(彼女は彼と知り合ってどのくらい経ちますか?)
I have known Ken for ten years.私はケンを10年間知っています。
主語とhave/hasに過去分詞を組み合わせることで状態の継続を表します。
疑問文や否定文のパターンを例文で確認したいときは、現在完了の疑問文・否定文の作り方の例文集を参考にしてください。
forとsinceの使い分けを完全整理
継続を表す英文では、「どれくらいの時間続いているのか」を示す語句がほぼ必須となります。その際に中心となるのが前置詞のforとsinceです。この2つの違いを明確に区別することが文法理解の重要なステップとなります。
「for + 期間」のルール
forは時間の長さ、すなわち「一定の幅・期間」を表す語句の前に置きます。「〜の間」と訳されます。
| 表現 | 意味 | 解説 |
|---|---|---|
| for three days | 3日間 | 日数の幅を示す |
| for two hours | 2時間 | 時間の幅を示す |
| for five years | 5年間 | 年数の幅を示す |
| for a long time | 長い間 | 不特定の長い期間を示す |
| for a few minutes | 数分間 | 短い時間の幅を示す |
- They have been busy for three weeks.(彼らは3週間ずっと忙しい状態です。)
「since + 起点」のルール
sinceは過去の「特定の始まりの時点(起点)」を表す語句の前に置きます。「〜以来」「〜から(ずっと)」と訳されます。
| 表現 | 意味 | 解説 |
|---|---|---|
| since yesterday | 昨日から | 過去の特定の日 |
| since 2018 | 2018年から | 過去の特定の年 |
| since last Sunday | この前の日曜日から | 特定の曜日 |
| since this morning | 今朝から | 特定の時間帯 |
- I have lived here since 2015.(私は2015年からここに住んでいます。)
接続詞sinceのパターン(since + 主語 + 過去形)
sinceは前置詞として名詞を後ろに従えるだけでなく、接続詞として後ろに「主語 + 動詞の過去形」の節を取ることができます。この形もテストや日常会話で頻出します。
- We have been good friends since we were children.(私たちは子供のころからずっと良い友人です。)
- She has lived alone since she graduated from college.(彼女は大学を卒業して以来、ずっと一人暮らしをしています。)
節の中の動詞が「過去の1点」を表すため、必ず過去形になる点に注意してください。
for + 期間
- 時間の長さ・一定の幅を表す
- 訳:「〜の間」
- 例:three days, two hours
since + 起点
- 過去の特定の始まりの時点を表す
- 訳:「〜以来」「〜から」
- 例:yesterday, 2018
時間の幅を表す場合はfor、過去の起点を表す場合はsinceを使います。
具体的な文での使われ方をもっと見たい方は、forとsinceの使い分けの例文集も合わせて確認してみてください。
現在完了形と現在完了進行形の違いと使い分け
英語学習者が最もつまずきやすいのが、「現在完了形[継続]」と「現在完了進行形」の違いです。基本の判別ルールは「使われている動詞が状態動詞か動作動詞か」という点にあります。
状態動詞と動作動詞の区別
動詞には大きく分けて2つのグループがあります。
- 状態動詞:自分の意思ですぐに始めたりやめたりできない状態を表す動詞。例:be(〜である)、know(知っている)、have(持っている)、like(好む)、belong(所属している)
- 動作動詞:体の動きや具体的な行為を表す動詞。例:study(勉強する)、wait(待つ)、run(走る)、play(遊ぶ・演奏する)、read(読む)
英文法の大原則として、状態動詞は原則として進行形(-ing)にできません。そのため、状態動詞で「ずっと〜している」と言いたい場合は、必ずhave + 過去分詞(現在完了形)を使います。
- I have known him for a long time.(正:私は彼を長い間知っています。)
- I have been knowing him for a long time.(誤:状態動詞knowは進行形不可)
現在完了進行形(have been -ing)の役割
動作動詞を使って「過去から今まで動作が途切れず行われている」ことを表す場合は、現在完了進行形(主語 + have / has been + -ing)を用いるのが原則です。動作が今も進行中である臨場感や、活動の継続性を強く伝えるニュアンスを持ちます。
- He has been waiting for the bus for 30 minutes.(彼はバスを30分間ずっと待ち続けています。)
- It has been raining since this morning.(今朝からずっと雨が降り続いています。)
liveとworkの例外ルール
例外として、live(住む)やwork(働く)といった動詞は、状態的な意味と動作的な意味の両方を併せ持つため、現在完了形と現在完了進行形のどちらを使っても文法的に正しく、意味の違いもごくわずかです。
- I have lived in Tokyo for five years.(私は東京に5年間住んでいます。)※長期的な定住のニュアンス
- I have been living in Tokyo for five years.(私は東京に5年間住み続けています。)※今まさに住んでいる活動を強調
日常会話ではどちらを用いても自然に通じます。
状態動詞(進行形不可)
- be
- know
- have
- like
- belong
動作動詞(現在完了進行形)
- study
- wait
- run
- play
- read
例外(両方可能)
- live
- work
動詞が状態動詞か動作動詞かによって、使う時制の形式が決まります。

現在完了の3用法をテストで見分けるキーワード
中学校や高校の定期テスト、資格試験では、現在完了形の文が「継続・経験・完了(結果)」のどの用法かを判別させる問題がよく出題されます。一緒に使われている副詞や語句を確認することで、短時間で見分けることが可能です。
| 用法 | 主な日本語訳 | 目印となる代表的な語句 |
|---|---|---|
| 継続 | ずっと〜している | for + 期間, since + 起点, How long |
| 経験 | 〜したことがある | before, ever, never, once, twice, many times |
| 完了・結果 | (ちょうど)〜したところだ / もう〜してしまった | already, just, yet, recently |
文中にfor three yearsやsince yesterdayがあれば「継続」、neverやbeforeがあれば「経験」、alreadyやjustがあれば「完了」と機械的に見分けることができます。ただし、キーワードが省略されている場合は、文脈と動詞の意味から判断する必要があります。
テスト対策として各用法の判別法を深掘りしたいときは、現在完了形の4用法の見分け方とキーワードが役立ちます。
次の疑問試験で迷いやすい判定ポイントを例文で復習したいときは、現在完了形3用法の見分け方をあわせて読むとすっきり整理できます。
自己紹介や会話で使える継続の実践フレーズ集
英会話や面接、自己紹介の場面で、自分の経歴や習慣を伝えるために継続の表現は欠かせません。そのまま使える定型文をカテゴリ別にご紹介します。
居住歴を伝えるフレーズ
- I have lived in Osaka for about three years.(大阪におよそ3年間住んでいます。)
- I have been living in this city since I entered university.(大学に入学して以来、この街に住み続けています。)
学習歴・趣味の継続を伝えるフレーズ
- I have been studying English for two years.(私は英語を2年間勉強しています。)
- I have been playing tennis since I was in high school.(高校生のときからずっとテニスを続けています。)
- She has been practicing the piano all afternoon.(彼女は午後ずっとピアノを練習し続けています。)
社歴・職歴を伝えるフレーズ
- I have worked at this company since 2019.(私は2019年からこの会社で働いています。)
- He has been working on this project for six months.(彼はこのプロジェクトに6か月間携わり続けています。)
- I have been in charge of sales for four years.(私は4年間、営業を担当しています。)
I have lived in Osaka for about three years.
I have been studying English for two years.
I have worked at this company since 2019.
居住歴・学習や趣味・職歴など、場面に応じた継続表現を活用できます。
理解度チェック!基礎演習問題と詳しい解説
学んだ知識が定着しているか、以下の練習問題で確認してみましょう。
第1問:空所補充(適する語を選んで補う)
(1)Mike has been absent from school ( for / since ) last Friday.
(2)We have known each other ( for / since ) more than ten years.
(3)( How long / When ) have you been playing the guitar?
第2問:動詞の適切な形(カッコ内の動詞を適する形に変える)
(1)She ( study ) French for three hours. Look, she is still at her desk.
(2)I ( have ) this smartphone since last year.
解答と解説
【第1問の解答】
- (1)since:last Friday(先週の金曜日)は過去の「起点」を表すため、sinceが適切です。訳:「マイクは先週の金曜日から学校を休んでいます。」
- (2)for:more than ten years(10年以上)は時間の「期間・幅」を表すため、forを選びます。訳:「私たちはお互いを10年以上知っています。」
- (3)How long:現在完了形とともに期間を尋ねる疑問文なのでHow longを用います。Whenは特定の過去の1点を尋ねる疑問詞のため、現在完了形と併用できません。訳:「どのくらいの間ギターを弾いているのですか?」
【第2問の解答】
- (1)has been studying:studyは動作動詞であり、「今も机に向かっている」という文脈から、現在も動作が進行している現在完了進行形が最も適しています。主語が三人称単数なのでhasにします。訳:「彼女は3時間フランス語を勉強し続けています。見て、まだ机に向かっています。」
- (2)have had:have(持っている・所有している)は状態動詞なので進行形にできません。したがって現在完了形のhave + 過去分詞(have had)にします。訳:「私は昨年からこのスマートフォンを持っています。」
続けて読む
理解度チェック
Q1. 過去から続く状態を表す際、状態動詞に用いる時制は?
- 現在進行形
- 過去形
- 現在完了形
- 現在完了進行形
答えを見る
正解: C. 現在完了形
状態動詞は原則として進行形にできないため、過去から続く状態には現在完了形を用います。
Q2. 「2時間前から本を読んでいる」を表す正しい英文はどれ?
- I am reading a book now.
- I read a book for two hours.
- I have been reading a book for two hours.
- I have been knowing him for a long time.
答えを見る
正解: C. I have been reading a book for two hours.
期間があり、readは動作動詞であるため現在完了進行形(have been -ing)を使います。
Q3. 継続表現における「for」と「since」の使い分けの規則は?
- forは起点、sinceは期間を表す
- forは期間、sinceは起点を表す
- どちらも動作動詞のときだけ用いる
- 文頭にはforしか置くことができない
答えを見る
正解: B. forは期間、sinceは起点を表す
forは一定の幅・期間を表す語句の前に、sinceは過去の始まりの時点(起点)の前に置きます。
よくある質問
- Q. 現在進行形と現在完了進行形の違いは何ですか?
- 現在進行形は「今この瞬間の一時的な動作」を表し、時間の長さには言及しません。一方、現在完了進行形は「過去から今までずっと動作が続いている」という期間のつながりを明示します。
- Q. Whenと現在完了形を一緒に使えないのはなぜですか?
- Whenは「いつ」という過去の明確な1点を尋ねる言葉です。過去から現在までの時間の幅を前提とする現在完了形とは時間の捉え方が矛盾するため、When did you 〜? のように過去形を用います。
- Q. have been toは継続用法で使えますか?
- 使えません。have been to 〜 は「〜へ行ったことがある(経験)」または「〜へ行ってきたところだ(完了)」を表します。継続で「ずっと〜にいる」と言いたいときは have been in 〜 を用います。
- Q. since thenの意味と使い方は?
- 「それ以来(ずっと)」という意味の頻出表現です。過去の特定の出来事を then で受け、I have lived here since then.(それ以来ずっとここに住んでいます)のように文末などで使われます。
- Q. ずっと好きだったは現在完了進行形にできますか?
- できません。like(好む・好きである)は状態動詞であるため進行形にはできず、現在完了形を用いて I have liked this song for years. のように表します。
2026年9月25日更新・モチタン辞典編集部
for
since
how long