本文へスキップ
Scordia

TOEIC Part5 タグ別演習

TOEIC 完了形の解き方|since と for の使い分けと無料練習問題

当サイトの文法問題546問のうち33問が完了形のテーマに該当する。このページでは解き方の手順とそのうち12問を掲載している。全問に日本語解説つき・登録不要。

要点

  • since + 時の起点 / for + 期間の長さ があれば現在完了、または現在完了進行形
  • 過去完了 (had + 過去分詞) は「過去のある時点よりさらに前」——before / after / by the time とセットで出る
  • By the time ... arrives のように未来の期限が示されたら、主節は未来完了 (will have + 過去分詞)

完了形はこう出る

完了形の問題は、選択肢に worked / has worked / had worked / will have worked が並ぶ形で出る。訳すとどれも「働いた」になってしまうため、日本語で考えると決められない。判断は**文中に置かれた時の基準点**で行う。

現在完了は「過去のある時点から今まで」をひとつながりで見る形で、since 1995 や for three weeks が合図になる。過去完了は基準点が過去にあり、そこよりさらに前の出来事を表す。未来完了は基準点が未来にあり、By the time the auditors arrive のような未来の期限とセットで使う。基準点がどこにあるかを決めれば、3つの完了形は取り違えない。

解き方の手順

  1. STEP 1: since / for / by the time などの合図を探す

    since + 時の起点(since 1995 / since she graduated)と for + 期間(for three weeks)は現在完了の合図。before / after / by the time は前後関係を示す語で、過去完了や未来完了の合図になる。

  2. STEP 2: 基準点が現在・過去・未来のどこにあるかを決める

    文中の他の動詞が現在なら現在完了、過去形なら過去完了、arrive / finish のような未来を指す現在形なら未来完了。基準点より前の出来事に完了形を使う、という順序で考える。

  3. STEP 3: 動作の継続なら進行形の完了を検討する

    has been working のように「その動作をずっと続けている」ことを示すなら現在完了進行形。work / operate / study のような継続できる動作で、since / for がある場合に選ばれやすい。

頻出パターン

意味・働き
have / has + 過去分詞 + since + 起点起点から今まで継続The plant has been in operation since 1995.
have / has been + -ing + for + 期間動作をずっと続けているShe has been working here for three weeks.
have / has been + 過去分詞完了形の受動態The room has been reserved for tomorrow.
had + 過去分詞 + before + 過去形過去の時点よりさらに前He had signed the contract before we noticed the error.
After + had + 過去分詞, 過去形先に起きたことを明示するAfter the merger had been announced, they held a press conference.
By the time + 現在形, will have + 過去分詞未来の期限までに完了By the time the auditors arrive, we will have prepared the records.
already / yet / never + 完了形完了・経験を表す副詞The team has already reviewed the documents.

since と for はどちらも現在完了と相性がよいが、後ろに来る形が違う。since の後ろは since 1995 / since she graduated のような起点、for の後ろは for three weeks のような長さで、during は期間を表す名詞を取るためこの位置では使えない。空欄の後ろが起点か長さかを見れば即決できる。

落ちやすい罠

  • yesterday / last month と現在完了を組み合わせる過去の一時点を示す語句があるときは過去形にする。現在完了は「いつ」を特定しない形
  • By the time の後ろの時制を見落とす後ろが現在形なら主節は未来完了 (will have done)、後ろが過去形なら過去完了 (had done)。By the time の節の時制で主節が決まる
  • 付加疑問との組み合わせhas been received, hasn't it? のように、完了形の文では付加疑問も has / hasn't で受ける。been に引きずられて isn't it としない

完了形の練習問題(12問)

正解を選んでから「正解と解説を見る」を開く。誤答の選択肢がなぜ違うかまで 確認すると定着が速い。

  1. Q1.

    Ms. Tanaka has been working here ______ she graduated from university.

    • (A) during
    • (B) since
    • (C) for
    • (D) while
    正解と解説を見る

    正解: (B)

    現在完了形・現在完了進行形と組み合わせて「起点(〜以来)」を示す接続詞は since です。本問では「has been working」という現在完了進行形が使われており、since が過去の起点(卒業した時点)から現在まで継続していることを示します。for は期間の長さ(例: for five years)を表すため、後ろに「she graduated」のような節は取れません。during は「〜の間」を表す前置詞で節を取れません。while は「〜している間」という同時進行を表し、現在完了との組み合わせで起点を示す用法はありません。

    • (A) during は「〜の間」を表す前置詞で、後ろには名詞句が必要です。during the meeting のように使います。節は取れません。
    • (B) 正解。since は「〜以来」を表す接続詞として節を導き、現在完了(進行)形と対応します。起点を示す最重要語です。
    • (C) for は「〜の間(期間)」を表す前置詞です。for five years のように数値を伴う名詞句が続きます。節(she graduated...)は取れません。
    • (D) while は「〜の間・〜しながら」を表し、同時進行する動作に使います。起点を示す用法はなく、現在完了との組み合わせも不自然です。

    ポイント: 現在完了形(have/has + p.p.)や現在完了進行形(have been + -ing)が見えたら since か for の選択肢を疑いましょう。since は「〜以来(起点)」、for は「〜の間(期間の長さ)」という使い分けが最重要です。

  2. Q2.

    By the time the auditors arrive next Monday, we ______ all the financial records.

    • (A) have prepared
    • (B) are preparing
    • (C) will have prepared
    • (D) will prepare
    正解と解説を見る

    正解: (C)

    「By the time + 現在形の節」が来た場合、主節には「will have + 過去分詞」(未来完了形)を使い、「〜するまでには〜し終えているだろう」という意味を表します。この問題では By the time the auditors arrive(監査人が到着するまでに)という時間的な基準点があり、そこまでに完了している未来の動作を示すため will have prepared が正解です。will prepare(単純未来)は「準備するだろう」で完了のニュアンスがありません。are preparing(現在進行)は現在の継続を表し未来の完了を示しません。have prepared(現在完了)は既に完了した過去から現在への動作を示し、未来の文脈に合いません。

    • (A) have prepared は現在完了形で「(今の時点で)準備し終えた」を意味します。未来の時間軸(next Monday)とは組み合わせられません。
    • (B) are preparing は現在進行形で「今準備している」を意味します。未来の完了を示す必要があるこの文脈には合いません。
    • (C) 正解。will have prepared は未来完了形で「〜するまでには準備し終えているだろう」を表します。By the time との組み合わせで完了を強調します。
    • (D) will prepare は単純未来で「準備する予定だ」を意味します。By the time との組み合わせでは「到着時点までに準備が完了している」という意味が出ません。

    ポイント: 未来完了形は「By + 未来の時点, S + will have + p.p.」という公式で使います。By next Monday / By the end of the year / By the time S V(現在形)のいずれかのパターンが見えたら will have + p.p. を優先的に検討しましょう。TOEIC 難問の頻出パターンです。

  3. Q3.

    The factory ______ in operation since 1995 and has never had a major safety incident.

    • (A) was
    • (B) had been
    • (C) is
    • (D) has been
    正解と解説を見る

    正解: (D)

    「since + 過去の時点」は現在完了形と組み合わせるルールがあります。本問では「since 1995」という過去の起点が示されており、1995年から現在まで工場が稼働し続けているという継続を表すには現在完了形 has been が必要です。後半の「has never had」も現在完了形であり、時制の一貫性からも has been が適切と確認できます。is(現在形)は「今稼働している」という現時点の状態のみを示し、since 1995 が表す継続の起点と整合しません。was(過去形)は過去の一点での状態を示し、現在も継続していることを表せません。had been(過去完了)は過去の特定の時点を基準にした継続で、現在まで続いていることを示せません。

    • (A) was は過去形で過去の一点での状態を示します。「現在まで稼働し続けている」という継続の意味は出せません。
    • (B) had been は過去完了形で「(過去のある時点まで)〜していた」を意味します。現在まで継続していることを示す since との組み合わせには不適切です。
    • (C) is は現在形で「今稼働している」という現時点の状態のみを示します。since 1995 が表す「1995年から現在まで継続」という意味とは結びつきません。
    • (D) 正解。has been は現在完了形(継続)で「〜からずっと〜している」を表します。since 1995 と最も自然に組み合わさります。

    ポイント: 現在完了形の「継続」用法では for と since が手がかりになります。for は期間の長さ(for 30 years)、since は起点(since 1995 / since he joined)と組み合わせます。どちらが見えても現在完了(have/has + p.p.)または現在完了進行形(have/has been + -ing)を選びましょう。

  4. Q4.

    The client had already ______ the contract before the lawyer noticed the error.

    • (A) signs
    • (B) signed
    • (C) signing
    • (D) sign
    正解と解説を見る

    正解: (B)

    過去完了形は「had + 過去分詞」の形で、過去のある時点よりもさらに前に起きた出来事(大過去)を表します。本文では before the lawyer noticed(弁護士が気づいた時点)よりも前に署名が完了していたことを示すために過去完了が必要です。already(すでに)も過去完了と共起しやすい副詞です。原形 sign や三単現 signs は had の後には置けません。現在分詞 signing を入れると had signing という非文法的な形になります。「before / after / when と組み合わさった過去完了」はTOEICで頻繁に出題されます。

    • (A) 三単現 signs。had の後に三単現も置けません。また時制が現在形であり、過去の文脈と一致しません。
    • (B) 正解。過去分詞 signed。had + signed で過去完了形を正しく構成します。弁護士が気づく前にすでに署名が完了していたという時系列を正確に表します。
    • (C) 現在分詞 signing。had signing という形は過去完了でも進行形でもなく、非文法的です。had been signing(過去完了進行形)なら文法的ですが、選択肢にはありません。
    • (D) 原形 sign。had の後に原形は置けません。had + 過去分詞が過去完了の構造です。

    ポイント: 「before / after / when / by the time + 過去形」が文中にある場合、もう一方の動詞は過去完了(had + 過去分詞)になることが多いです。2つの過去の出来事の順序を表す際、先に起きた方に過去完了を使うと覚えましょう。

  5. Q5.

    After the merger had been ______, both CEOs held a joint press conference.

    • (A) announced
    • (B) announcing
    • (C) announcement
    • (D) announce
    正解と解説を見る

    正解: (A)

    過去完了の受動態は「had been + 過去分詞」の形で作ります。本文では the merger had been ______ という構造であり、合併(merger)は「発表される」という受け身の対象です。had been の後には過去分詞が必要です。原形 announce は had been の後に置けません。現在分詞 announcing を入れると had been announcing という過去完了進行形の能動態になりますが、「合併が発表しつつあった」という意味は文脈に合いません。名詞 announcement は動詞位置には来ません。過去完了形と受動態を組み合わせた文法問題です。

    • (A) 正解。過去分詞 announced。had been announced で「(過去のある時点より前に)発表されていた」という過去完了の受動態を正しく作ります。
    • (B) 現在分詞 announcing。had been announcing だと過去完了進行形・能動態になります。「合併が発表し続けていた」という意味になり、文脈に合いません。受動態(announced)が必要です。
    • (C) 名詞 announcement。had been の後に名詞は入れられません。動詞の過去分詞形が必要です。
    • (D) 原形 announce。had been + 原形は文法上誤りです。had been の後には必ず過去分詞が来ます。

    ポイント: 「had been + 過去分詞」は過去完了の受動態で、After / Before / By the time と共に使われるのが典型パターンです。時制(過去完了)と態(受動)の2つを同時に見極める問題は、それぞれを分解して確認しましょう。had been が見えたら後は必ず過去分詞、と覚えておけば即答できます。

  6. Q6.

    Before the negotiations began, the team had ______ reviewed all relevant documents.

    • (A) more thorough
    • (B) thoroughness
    • (C) thorough
    • (D) thoroughly
    正解と解説を見る

    正解: (D)

    空欄は助動詞 had と過去分詞 reviewed の間に位置しています。この位置に来るのは副詞です。thoroughly(副詞「徹底的に」)が had と reviewed の間に入り、過去完了形の動詞句を修飾します。thorough は形容詞で動詞を修飾できません。thoroughness は名詞であり動詞の修飾には使えません。more thorough は形容詞の比較級で、やはり動詞修飾の位置には不適切です。TOEIC では副詞の適切な位置と語形変化の問題が頻出です。

    • (A) 不正解。more thorough は形容詞の比較級です。形容詞は名詞修飾か補語の役割であり、動詞を修飾することはできません。
    • (B) 不正解。thoroughness は名詞「徹底さ」です。名詞は動詞を修飾する機能を持ちません。
    • (C) 不正解。thorough は形容詞で、名詞を修飾するか補語として使います。過去分詞(reviewed)を修飾する副詞の役割は果たせません。
    • (D) 正解。thoroughly は副詞で「徹底的に・入念に」という意味です。had ... reviewed という動詞句を修飾し、「入念にレビューしていた」という意味を完成させます。

    ポイント: thorough / thoroughly / thoroughness の品詞区別は頻出です。動詞・過去分詞・形容詞・副詞を修飾するのは副詞(-ly 形)。空欄が助動詞と過去分詞の間にあれば、副詞が第一候補です。

  7. Q7.

    Had the marketing team ______ the campaign earlier, the product launch would have been more successful.

    • (A) began
    • (B) beginning
    • (C) begin
    • (D) begun
    正解と解説を見る

    正解: (D)

    「Had + S + 過去分詞, S + would have + 過去分詞」は仮定法過去完了の倒置形です。if を省略して had を文頭に置いた倒置構文であり、「If the marketing team had begun ...」と同義です。begin の活用は begin(原形)→ began(過去形)→ begun(過去分詞)であり、過去分詞 begun が正解です。begin(原形)は倒置形の仮定法過去完了では使えません。began(過去形)は過去完了の had との組み合わせには使えません。beginning(現在分詞)は had との組み合わせで過去分詞の位置には合いません。

    • (A) 不正解。began は動詞の過去形です。had + 過去形 という形は英語の文法にありません。過去完了は had + 過去分詞 です。
    • (B) 不正解。beginning は現在分詞・動名詞です。had beginning という組み合わせは文法的に誤りです。
    • (C) 不正解。begin は動詞の原形です。had + 原形 という組み合わせは現在完了・過去完了の形として成立しません。
    • (D) 正解。begun は begin の過去分詞です。Had the team begun ...(= If the team had begun ...)という仮定法過去完了の倒置形が成立します。

    ポイント: if を省略した仮定法の倒置: Had + S + p.p.(仮定法過去完了)/ Were + S ...(仮定法過去)/ Should + S + 原形(仮定法未来)。不規則動詞の過去分詞(begin→begun / write→written / take→taken)を確実に覚えましょう。

  8. Q8.

    The new policy has been well received by all departments, ______?

    • (A) is it
    • (B) isn't it
    • (C) has it
    • (D) hasn't it
    正解と解説を見る

    正解: (D)

    付加疑問文(tag question)は主節の文が肯定であれば否定の付加疑問、否定であれば肯定の付加疑問を文末に付けます。本文「The new policy has been well received ...」は肯定文なので、否定の付加疑問が必要です。助動詞は主節の助動詞(has)と一致させ、主語は代名詞(it = the new policy)を使います。したがって hasn't it が正解です。has it は肯定の付加疑問であり、肯定文の後には使えません。is it / isn't it は be 動詞を使った付加疑問であり、主節の助動詞 has(現在完了)とは一致しません。

    • (A) 主文は現在完了(has been received)なので be 動詞の付加疑問は不適切。また肯定文には否定の付加疑問が必要。
    • (B) be 動詞を使った付加疑問だが、主文に現在完了の has があるため hasn't it が正しい形。
    • (C) has it は肯定の付加疑問になってしまう。肯定文の後には否定の付加疑問が必要。
    • (D) 正解。肯定の現在完了文(has been received)の後は否定の付加疑問 hasn't it を使う。

    ポイント: 付加疑問文の2ルール: ①主節が肯定→付加疑問は否定(hasn't it)、主節が否定→付加疑問は肯定(has it)。②付加疑問の助動詞は主節の助動詞と一致(has → hasn't / is → isn't / will → won't)。主語は必ず代名詞に変換します。

  9. Q9.

    The conference room ______ for the board meeting tomorrow morning.

    • (A) has been reserving
    • (B) has reserved
    • (C) has been reserved
    • (D) reserving
    正解と解説を見る

    正解: (C)

    この問題は「時制(現在完了)」と「態(受動態)」の両方を判断する必要があります。主語は The conference room(会議室)であり、「予約する」という行為の主体ではなく、「予約される」という行為の受け手です。したがって受動態が必要です。さらに「現在完了(have/has + 過去分詞)」の形が文脈に合います。現在完了受動態の形は「have/has + been + 過去分詞」です。has reserved は現在完了能動態であり、主語(会議室)が予約する側という意味になり不適切です。has been reserving は現在完了進行形の受動態に見えますが、reserving は他動詞の進行形であり受動の意味を持ちません。reserving 単体では述語動詞が不完全です。

    • (A) 不正解。has been reserving は現在完了進行形(has + been + -ing)の能動態です。「会議室がずっと予約し続けている」という意味になり、会議室が予約する側という不自然な意味になります。
    • (B) 不正解。has reserved は現在完了能動態(The room has reserved...)です。「会議室が(何かを)予約した」という能動の意味になりますが、会議室は予約される側なので受動態が必要です。
    • (C) 正解。has been reserved は現在完了受動態(has + been + 過去分詞)です。「会議室が(誰かによって)予約されている」という受動・完了の意味が成立し、tomorrow morning(明日の朝)という近い未来のための準備が完了した状態を示します。
    • (D) 不正解。reserving は現在分詞・動名詞で、助動詞なしに単独で述語動詞にはなれません。文の述語として機能するためには has been reserved のように完全な形が必要です。

    ポイント: 現在完了受動態「has/have + been + 過去分詞」は TOEIC で頻出の形です。The room has been reserved. / The report has been submitted. / The contract has been signed. のように「(すでに)〜されている」という完了状態を表します。受動か能動かは主語と動詞の意味的関係から判断しましょう。

  10. Q10.

    The marketing team has been working on the campaign ______ three weeks.

    • (A) during
    • (B) for
    • (C) since
    • (D) while
    正解と解説を見る

    正解: (B)

    現在完了進行形(has been working)と共に使う時の前置詞の選択がポイントです。「three weeks(3週間)」は期間の長さを表す数量表現なので、期間を表す for を使います。for + 数量(期間)、since + 起点(特定の時点・時刻)という対比がTOEIC 頻出です。選択肢Aの since は「〜以来」で後ろに時点(since last Monday / since 2020 など)が来ます。three weeks のような数量表現は since には続きません。選択肢Cの during は「〜の間ずっと」で特定の期間(during the conference など)の内部を示し、数量表現には使いません。選択肢Dの while は接続詞で、後ろに節(主語 + 動詞)が必要です。

    • (A) during は「特定の期間の内部」を表し、during the meeting / during the conference のように固有名詞的な期間表現と使います。during three weeks は不自然です。
    • (B) 正解。for + 数量(期間)で「〜の間」。for three weeks で「3週間の間」という期間を正確に表します。
    • (C) since は特定の起点(時点)の後に使います。since three weeks は非文法的で、since three weeks ago や since Monday が正しい形です。
    • (D) while は接続詞で節(S + V)を導きます。前置詞として数量表現の前に置くことはできません。

    ポイント: for と since の使い分けは「後ろが期間か時点か」で判断します。for + 数量(three days / two years)、since + 時点(2020 / last week / the meeting)と覚えると迷いません。

  11. Q11.

    By the time the manager arrives, the team ______ the presentation.

    • (A) finished
    • (B) finishes
    • (C) will finish
    • (D) will have finished
    正解と解説を見る

    正解: (D)

    「By the time + 現在形の節」は「〜する頃には」という意味で、主節では未来完了形(will have + 過去分詞)を使います。これは「ある未来の時点までに動作が完了している」ことを表す構文です。本問では「マネージャーが到着する(未来)」よりも前にプレゼンが終わることを示すため will have finished が適切です。finishes は現在形、will finish は単純未来形で「完了している」という継続・完了のニュアンスがなく、finished は過去形で時制が合いません。

    • (A) finished は過去形。未来のある時点までの完了を表す文には使えない。
    • (B) finishes は現在形。未来の完了した状態を表すには不適切。
    • (C) will finish は単純未来形。「by the time + 現在形」の主節には未来完了形が適切。
    • (D) 正解。by the time + 現在形の文では主節に未来完了形 will have finished を使う。

    ポイント: 「By the time S + 現在形」「By + 未来の時点」が見えたら主節は未来完了形(will have p.p.)を使います。TOEIC では比較的難度の高い構文ですが、パターンとして覚えると安定します。

  12. Q12.

    The company ______ a new branch in London since January.

    • (A) is operating
    • (B) operated
    • (C) operates
    • (D) has been operating
    正解と解説を見る

    正解: (D)

    「since January(1月から)」という起点を示す表現があります。since は継続を表す現在完了(進行)形と組み合わせて使います。さらに operate は動作動詞(進行形にできる動詞)であり、1月からずっと継続している動作なので現在完了進行形 has been operating が最適です。operates は単純現在形で since との相性がありません。operated は過去形なので継続の意味が出ません。is operating は現在進行形で現在の動作は表せますが since と組み合わせた継続の意味は不完全です。

    • (A) is operating は現在進行形。since January という始点を示す表現があるので現在完了進行形が適切。
    • (B) operated は過去形。since January と共に使う場合は現在完了形が必要。
    • (C) operates は現在形。since January の継続を表す表現と組み合わせるには不自然。
    • (D) 正解。since + 過去時点は現在完了進行形(has been operating)と共に使い、過去から現在まで継続している動作を表す。

    ポイント: since(〜以来)や for(〜の間)を見たら、まず現在完了形(または現在完了進行形)を疑いましょう。動作動詞 + 継続の文脈では現在完了進行形(has/have been -ing)が自然です。

続きを解く

完了形のテーマに該当する文法問題は全部で33問ある(当サイトの文法問題546問のうち)。挑戦モードでは正誤が記録され、 間違えた問題だけを復習できる。

よくある質問

現在完了と過去形はどう使い分けますか?

過去のある一点の出来事として述べるなら過去形、その状態や結果が今も続いているなら現在完了です。yesterday や last week のように時点を特定する語句があれば過去形、since や for があれば現在完了が正解になります。

since と for の違いは何ですか?

since の後ろは since 2019 や since he joined のような起点、for の後ろは for three weeks のような期間の長さです。どちらも現在完了と結びつきますが、後ろに来る語の種類が違うため機械的に判別できます。

過去完了はどんな問題で問われますか?

過去の出来事が2つあり、どちらが先かを示す問題です。before / after / by the time とセットで出るほか、仮定法過去完了 (If we had ordered earlier) や倒置 (Had the team started earlier) の形でも問われます。

他のタグ別演習