第10章 仮定法

仮定法過去完了
─ 「もしSが...したならば、S'は〜しただろう」の基本形

「あの時もっと勉強していたら…」── 過ぎ去った出来事への後悔や空想を英語で表すには?
仮定法過去が「現在形→過去形」に1段ずらしたのと同じ原理で、
仮定法過去完了は「過去形→過去完了形」にさらに1段ずらします。

1仮定法過去完了とは

仮定法過去完了は、「過去の事実に反すること」を表す形です。 「あの時〜だったら、…だっただろうに」── 過ぎ去った出来事への後悔や空想を表すときに使います。

🧠 ネイティブの感覚:過去 + 過去 = 「二重の距離」

仮定法過去は「現在形 → 過去形」に1段ずらして現実との距離を作りました。

仮定法過去完了は「過去形 → 過去完了形」にさらに1段ずらします。つまり、過去の出来事からさらに距離をとることで、「過去の非現実」を表しているのです。

原理はまったく同じ── 本来の時制から過去方向に1段ずらす = 現実から距離をとる。それだけです。

💡 ここが本質:「距離」の方向を理解する

仮定法過去:現在 → 1段過去へずらす → 「現在の非現実」

仮定法過去完了:過去 → さらに1段過去へずらす → 「過去の非現実」

どちらも「本来の時制から1段ずらす」という同じ原理です。

2仮定法過去完了の基本形

📏 文法ルール:仮定法過去完了の基本形

If + S + had + 過去分詞 ..., S' + would / could / might + have + 過去分詞 ...

「もし(あの時)Sが〜だったら、S'は…しただろうに / …できただろうに」

※ if節 = had + 過去分詞(過去完了形)で「過去からさらに距離」をとる。
※ 主節 = would / could / might + have + 過去分詞 で「〜しただろうなあ」と結ぶ。
※ 主節で should を使うのは主語が一人称(I / we)の場合のみ。意味は would と同じ。
📝 例文で確認
If you had asked me, I would have helped you.
あの時頼んでくれていたら、手伝ったのに。(実際には頼まなかった)
If I had had more time then, I could have checked my report again.
あの時もっと時間があったなら、報告書をもう一度確認できたのに。
If I had studied harder, I could have passed the exam.
もっと勉強していたら、試験に受かれたのに。
🔬 ワンポイント:had had の形は正しい

"If I had had more time" のように had が2つ続く形に違和感を覚えるかもしれませんが、これは正しい英語です。最初の had は仮定法過去完了の助動詞、2番目の had は動詞 have の過去分詞です。

3仮定法過去との比較

仮定法過去と仮定法過去完了を整理しましょう。違いは「いつの非現実を語っているか」です。

仮定法過去
(現在の非現実)
仮定法過去完了
(過去の非現実)
if節 If + S + 過去形 If + S + had + 過去分詞
主節 S' + would + 原形 S' + would + have + 過去分詞
距離の方向 現在 → 1段過去へ 過去 → さらに1段過去へ
If I had money, I would buy it. If I had had money, I would have bought it.
📝 同じ状況を2つの仮定法で比較
If I knew his number, I would call him.
彼の番号を知っていれば、電話するのに。(今知らない → 仮定法過去)
If I had known his number, I would have called him.
彼の番号を知っていたら、電話したのに。(あの時知らなかった → 仮定法過去完了)

4よくある間違いと注意点

⚠️ 落とし穴:主節で "would had" と書いてしまう

仮定法過去完了の主節で、would のあとにさらに had を入れてしまうのは典型的なミスです。

✕ 誤:I would had helped you.

○ 正:I would have helped you.

would のあとには必ず動詞の原形が来ます。「have + 過去分詞」の have は原形です。had ではありません。

⚠️ 落とし穴:if節と主節を逆にしてしまう

仮定法過去完了と聞くと、機械的に「if節も主節も過去完了」と考えてしまう学習者がいます。

✕ 誤:If I had studied harder, I had passed the exam.

○ 正:If I had studied harder, I would have passed the exam.

if節 = had + 過去分詞、主節 = would + have + 過去分詞。主節には必ず助動詞の過去形が入ります。

🔬 ワンポイント:仮定法を見抜くコツ

仮定法かどうかを見抜くには、主節の助動詞に注目するのが最も確実です。

主節に would / could / might があれば仮定法を疑い、次にif節の動詞の形を確認しましょう。

・would + 原形 → 仮定法過去(現在の非現実)

・would + have + 過去分詞 → 仮定法過去完了(過去の非現実)

5つながりマップ

仮定法過去完了の基本を学んだら、次のトピックへ進みましょう。

  • → G-10-3 仮定法の組み合わせと特殊形:過去と過去完了の混合形(if節が過去完了 + 主節が仮定法過去)など、さらに発展的な形を学びます。
  • → G-10-4 wish / If only + 仮定法:if節を使わず「〜だったらなあ」と願望を表す仮定法表現を学びます。
  • → G-10-1 仮定法過去:仮定法過去完了と比較して、「現在の非現実」と「過去の非現実」の違いを再確認しましょう。

📋まとめ

  • 仮定法過去完了 = 「過去の事実に反する仮定」を表す形
  • 基本形:If + S + had + 過去分詞, S' + would/could/might + have + 過去分詞
  • 「過去からさらに1段ずらす」ことで過去の非現実を表す(仮定法過去と同じ「距離」の原理)
  • 主節の would のあとは have(原形)であり、had ではない
  • 仮定法を見抜くコツ:主節の助動詞に注目 → would + have + 過去分詞 なら仮定法過去完了

確認テスト

Q1. 仮定法過去完了はどんな内容を表す形ですか。

▶ クリックして解答を表示過去の事実に反する仮定を表す形。「あの時〜だったら、…しただろうに」のように、過ぎ去った出来事への後悔や空想を表す。

Q2. 次の英文の誤りを正してください。
If I had studied harder, I would had passed the exam.

▶ クリックして解答を表示would had → would have。wouldのあとには動詞の原形が来る。「have + 過去分詞」のhaveは原形であり、hadではない。

Q3. 「仮定法過去」と「仮定法過去完了」は何が違いますか。

▶ クリックして解答を表示仮定法過去は「現在の事実に反する仮定」(今〜なら)、仮定法過去完了は「過去の事実に反する仮定」(あの時〜だったら)。どちらも「本来の時制から1段ずらす」原理は同じ。

Q4. 次の英文は仮定法過去・仮定法過去完了のどちらですか。
If we had known your new address, we would have come to see you.

▶ クリックして解答を表示仮定法過去完了。if節が had known(had + 過去分詞)、主節が would have come(would + have + 過去分詞)。過去の事実に反する仮定。「あなたの新しい住所を知っていたら、会いに行ったのに」

8入試問題演習

この記事で学んだ内容を、入試形式の問題で確認しましょう。

A 基礎レベル

10-2-1 A 基礎 仮定法過去完了 空所補充

If we had known about his busy schedule, we (  ) the meeting.

  • ① put off
  • ② had put off
  • ③ will put off
  • ④ would have put off
▶ クリックして解答・解説を表示
解答

④ would have put off

解説

判断のポイント:if節が had known(had + 過去分詞)なので、仮定法過去完了と判断できます。

仮定法過去完了の主節は would / could / might + have + 過去分詞の形になります。④ would have put off が正解です。

「彼の多忙なスケジュールを知っていたら、会議を延期しただろうに(実際には知らなかった)」

B 発展レベル

10-2-2 B 発展 仮定法過去完了 空所補充

If I (  ) more time then, I could have checked my report again.

  • ① have
  • ② would have
  • ③ had
  • ④ had had
▶ クリックして解答・解説を表示
解答

④ had had

解説

判断のポイント:主節が could have checked(could + have + 過去分詞)なので仮定法過去完了です。then(あの時)も過去を指すヒントです。

仮定法過去完了のif節は動詞の過去完了形(had + 過去分詞)を用います。haveの過去分詞は had なので、had had が正解です。

「あの時もっと時間があったなら、報告書をもう一度確認できたのに」

C 応用レベル

10-2-3 C 応用 仮定法過去完了 正誤判定

次の英文の下線部に誤りがあれば正しなさい。誤りがなければ「正しい」と答えなさい。

No one would have attended the meeting if you told the truth about the speaker.

▶ クリックして解答・解説を表示
解答

told → had told

解説

判断のポイント:主節が would have attended(would + have + 過去分詞)なので、仮定法過去完了と判断できます。

仮定法過去完了のif節は過去完了形(had + 過去分詞)を用いるので、told を had told に直す必要があります。

「あなたがその演説者の真相を話していたら、会議にはだれも出席しなかっただろう」

得点の差がつくポイント
  • 主節の形から仮定法過去完了だと気づけるかがカギ
  • if節が文の後半にある場合でも、仮定法の判断方法は同じ