月影

日々の雑感

【大人の学び直し英語】仮定法ドリル | If/wishの使い方を全80問で徹底復習

【大人の学び直し英語】仮定法 徹底攻略ドリル

前回の記事「【大人の学び直し英語】仮定法の完全ガイド」では、「もし~だったら」という現実とは違うことを想定する「仮定法」の基本的な考え方を学びました。

【大人の学び直し英語】仮定法の使い方完全ガイド|仮定法過去・過去完了の違いを徹底解説 - 月影

「現在の話なのに過去形を使う」「過去の話なのに過去完了形を使う」という「時制のズレ」が、仮定法の「現実との距離感」を表す核心でしたね。

今回は、その大切な知識を「記憶に定着させる」ための実践ドリルです。「仮定法過去」「仮定法過去完了」「I wish」という仮定法の3大パターンを、合計80問のクイズで徹底的に復習します。「わかる」を「できる」に変えるために、ぜひチャレンジしてみてください!


1. 仮定法過去ドリル(現在の事実に反する仮定)

まずは「仮定法過去」の練習です。これは「(今は違うけど)もし今~だったら、~するのに」という、現在の事実とは異なる願望や想像を表す表現です。

現在の話ですが、「現実ではない」という距離感を出すために、動詞の時制を一つずらして「過去形」を使うのがルールです。

  • 公式: If + 主語 + 動詞の過去形, 主語 + would/could/might + 動詞の原形
  • ポイント: be動詞は、主語が I / He / She であっても were を使うのが伝統的な形です。

括弧内の動詞を、仮定法過去の正しい形(If節は過去形、主節は would/could + 原形)に直してみましょう。

やってみよう!仮定法過去クイズ(20問)

  1. If I ( be ) a bird, I ( can fly ) to you. (もし私が鳥だったら、あなたのところに飛んでいけるのに)
    答えを見る

    were / could fly
    (現在の事実に反する仮定です。If節のbe動詞は were、主節は「できるのに」なので could fly となります)

  2. If I ( have ) more money, I ( will buy ) that car. (もしもっとお金があれば、あの車を買うのに)
    答えを見る

    had / would buy
    (現実:お金がない。If節は過去形の had、主節は「買うのに」なので would buy となります)

  3. If I ( know ) his phone number, I ( will call ) him. (もし彼の電話番号を知っていれば、彼に電話するのに)
    答えを見る

    knew / would call
    (現実:知らない。If節は過去形の knew、主節は would call となります)

  4. What ( will ) you ( do ) if you ( win ) the lottery? (もし宝くじに当たったら、何をしますか?)
    答えを見る

    would / do / won
    (現在の事実に反する仮定の疑問文です。主節は would ... do、If節は過去形の won となります)

  5. If I ( be ) you, I ( will not do ) that. (もし私があなただったら、そんなことはしないのに)
    答えを見る

    were / would not do
    (If I were you は「もし私があなたなら」という決まり文句です。主節は would not do となります)

  6. If he ( live ) nearer, we ( can meet ) more often. (もし彼がもっと近くに住んでいたら、もっと頻繁に会えるのに)
    答えを見る

    lived / could meet
    (If節は過去形の lived、主節は「会えるのに」という可能性なので could meet となります)

  7. I ( will help ) you if I ( have ) time. (もし時間があれば、手伝うのに)
    答えを見る

    would help / had
    (主節から始まってもルールは同じです。現実:時間がない)

  8. If she ( be ) here, she ( will know ) the answer. (もし彼女がここにいれば、答えを知っているだろうに)
    答えを見る

    were / would know
    (If節のbe動詞は were、主節は would know となります)

  9. If I ( can speak ) French, I ( will travel ) to France. (もしフランス語が話せたら、フランスに旅行するのに)
    答えを見る

    could speak / would travel
    (「もし~できるなら」と能力の仮定は If I could ... を使います。If節が could なので、主節は would を使います)

  10. The weather is bad. If it ( be ) sunny, we ( will go ) to the beach. (天気が悪い。もし晴れていれば、ビーチに行くのに)
    答えを見る

    were / would go
    (現在の天気が悪いという事実に反する仮定です)

  11. If I ( have ) a car, I ( can drive ) you home. (もし車を持っていたら、家まで送ってあげられるのに)
    答えを見る

    had / could drive
    (現実:車を持っていない。主節は「できるのに」なので could drive です)

  12. He ( will be ) happier if he ( change ) his job. (もし彼が仕事を変えれば、もっと幸せだろうに)
    答えを見る

    would be / changed
    (主節から始まっています。would be / changed となります)

  13. If I ( be ) rich, I ( will travel ) around the world. (もし私がお金持ちだったら、世界一周旅行をするのに)
    答えを見る

    were / would travel
    (定番の例文です。were / would travel です)

  14. If I ( not be ) so busy, I ( will join ) you. (もしこんなに忙しくなければ、あなたに合流するのに)
    答えを見る

    were not / would join
    (仮定法過去の否定文です。were not (weren't) / would join です)

  15. If I ( own ) that house, I ( will paint ) it blue. (もしあの家を持っていたら、青く塗るのになあ)
    答えを見る

    owned / would paint
    (If節は過去形の owned、主節は would paint となります)

  16. ( Will ) you ( move ) here if you ( get ) the job? (もしその仕事を得たら、ここに引っ越してきますか?)
    答えを見る

    Would / move / got
    (仮定法過去の疑問文です。Would you move / got となります)

  17. If I ( be ) the president, I ( will change ) the law. (もし私が大統領なら、その法律を変えるのに)
    答えを見る

    were / would change
    (If I were ... の形です)

  18. If my dog ( can talk ), I ( will ask ) him many things. (もし私の犬が話せたら、たくさんのことを聞くのに)
    答えを見る

    could talk / would ask
    (「もし~できるなら」の could talk / would ask です)

  19. If he ( study ) harder, he ( can get ) better grades. (もし彼がもっと勉強すれば、もっと良い成績がとれるのに)
    答えを見る

    studied / could get
    (現実:あまり勉強しない。studied / could get です)

  20. I ( will buy ) a new computer if I ( have ) enough money. (もし十分なお金があれば、新しいコンピュータを買うのに)
    答えを見る

    would buy / had
    (主節から始まっています。would buy / had です)


2. 仮定法過去完了ドリル(過去の事実に反する仮定)

次は「仮定法過去完了」の練習です。これは「(実際は違ったけど)もしあの時~していたら、~だっただろうに」という、過去の事実とは異なる後悔や想像を表す表現です。

過去の話を「現実ではない」とさらにずらすため、動詞の形は「過去完了形 (had + 過去分詞)」を使います。

  • 公式: If + 主語 + had + 過去分詞, 主語 + would/could/might + have + 過去分詞

括弧内の動詞を、仮定法過去完了の正しい形(If節は had + 過去分詞、主節は would/could + have + 過去分詞)に直してみましょう。

やってみよう!仮定法過去完了クイズ(20問)

  1. If I ( study ) harder, I ( will pass ) the exam. (もしもっと一生懸命勉強していたら、試験に合格していただろうに)
    答えを見る

    had studied / would have passed
    (現実:勉強しなかった。If節は過去完了 had studied、主節は would have passed です)

  2. If you ( tell ) me the truth, I ( can help ) you. (もし君が本当のことを話してくれていたら、助けることができたのに)
    答えを見る

    had told / could have helped
    (現実:話さなかった。If節は had told、主節は「できたのに」なので could have helped です)

  3. If I ( know ) you were coming, I ( will bake ) a cake. (もし君が来ると知っていたら、ケーキを焼いていただろうに)
    答えを見る

    had known / would have baked
    (現実:知らなかった。had known / would have baked です)

  4. If it ( not rain ), we ( will go ) on a picnic. (もし雨が降っていなかったら、ピクニックに行っただろうに)
    答えを見る

    had not rained / would have gone
    (現実:雨が降った。否定文です。had not rained (hadn't rained) / would have gone です)

  5. If I ( take ) the taxi, I ( will arrive ) on time. (もしタクシーに乗っていたら、時間通りに到着していただろうに)
    答えを見る

    had taken / would have arrived
    (現実:乗らなかった。had taken / would have arrived です)

  6. She ( will not make ) such a mistake if she ( be ) more careful. (もし彼女がもっと注意深かったら、そんな間違いはしなかっただろうに)
    答えを見る

    would not have made / had been
    (主節から始まっています。would not have made / had been です)

  7. If I ( be ) there, I ( can stop ) him. (もし私がそこにいたら、彼を止めることができたのに)
    答えを見る

    had been / could have stopped
    (現実:いなかった。had been / could have stopped です)

  8. What ( will ) you ( do ) if I ( not help ) you? (もし私が助けなかったら、あなたはどうしていましたか?)
    答えを見る

    would / have done / had not helped
    (仮定法過去完了の疑問文です。What would you have done / had not helped (hadn't helped) です)

  9. If I ( get up ) earlier, I ( will not miss ) the train. (もしもっと早く起きていたら、電車に乗り遅れなかっただろうに)
    答えを見る

    had gotten up / would not have missed
    (had gotten up (got upの過去分詞) / would not have missed です)

  10. If he ( follow ) my advice, he ( will succeed ). (もし彼が私のアドバイスに従っていたら、成功していただろうに)
    答えを見る

    had followed / would have succeeded
    (現実:従わなかった。had followed / would have succeeded です)

  11. I ( can buy ) the ticket if I ( have ) enough money. (もし十分なお金を持っていたら、そのチケットを買えたのに)
    答えを見る

    could have bought / had had
    (主節から始まっています。「持っていたら」は had の過去完了形 had had となります)

  12. If I ( see ) you, I ( will say ) hello. (もしあなたを見かけていたら、挨拶しただろうに)
    答えを見る

    had seen / would have said
    (現実:見かけなかった。had seen / would have said です)

  13. If you ( ask ) me, I ( will lend ) you the book. (もし私に頼んでくれていたら、その本を貸してあげたのに)
    答えを見る

    had asked / would have lent
    (lend の過去分詞は lent です。had asked / would have lent です)

  14. If they ( invite ) me, I ( will go ) to the party. (もし彼らが私を招待してくれていたら、パーティーに行っただろうに)
    答えを見る

    had invited / would have gone
    (現実:招待されなかった。had invited / would have gone です)

  15. He ( will not be ) so tired if he ( sleep ) well. (もし彼がよく寝ていたら、そんなに疲れていなかっただろうに)
    答えを見る

    would not have been / had slept
    (主節から始まっています。would not have been / had slept です)

  16. If I ( not be ) sick, I ( will join ) the trip. (もし病気でなかったら、その旅行に参加しただろうに)
    答えを見る

    had not been / would have joined
    (現実:病気だった。had not been (hadn't been) / would have joined です)

  17. If the driver ( be ) more careful, the accident ( will not happen ). (もし運転手がもっと注意深かったら、事故は起こらなかっただろうに)
    答えを見る

    had been / would not have happened
    (had been / would not have happened です)

  18. If I ( choose ) a different major, my life ( will be ) different. (もし違う専攻を選んでいたら、私の人生は違っていただろうに)
    答えを見る

    had chosen / would have been
    (choose の過去分詞は chosen です。had chosen / would have been です)

  19. We ( can win ) the game if he ( play ). (もし彼が試合に出ていたら、私たちは勝てたかもしれないのに)
    答えを見る

    could have won / had played
    (主節から始まっています。「勝てたかも」なので could have won / had played です)

  20. If I ( realize ) the danger, I ( will not go ) there. (もしその危険に気づいていたら、そこへは行かなかっただろうに)
    答えを見る

    had realized / would not have gone
    (had realized / would not have gone です)


3. I wish ... ドリル(現在の願望 vs 過去の後悔)

I wish ...(~だったらなあ)は、現実には叶わない強い願望や後悔を表す表現です。この後ろにも仮定法が続きます。

  • 現在の願望(今~ならなあ): I wish + 主語 + 過去形 (仮定法過去)
  • 過去の後悔(あの時~しておけばなあ): I wish + 主語 + 過去完了形 (仮定法過去完了)

日本語訳をヒントに、( ) 内の動詞を「現在の願望(過去形)」か「過去の後悔(過去完了形)」のどちらか正しい形に直してみましょう。

やってみよう! I wish ... クイズ(20問)

  1. (今、もっと背が高ければなあ) I wish I ( be ) taller.
    答えを見る

    were
    (現在の願望なので仮定法過去を使います。be動詞は were です)

  2. (あの時、あの株を買っておけばよかった) I wish I ( buy ) that stock.
    答えを見る

    had bought
    (過去の後悔なので仮定法過去完了 had bought を使います)

  3. (今、英語が流暢に話せたらなあ) I wish I ( can speak ) English fluently.
    答えを見る

    could speak
    (現在の願望(能力)なので仮定法過去 could speak を使います)

  4. (あの時、もっと勉強しておけばよかった) I wish I ( study ) harder.
    答えを見る

    had studied
    (過去の後悔なので仮定法過去完了 had studied を使います)

  5. (今、ここに彼がいればなあ) I wish he ( be ) here.
    答えを見る

    were
    (現在の願望なので仮定法過去 were を使います)

  6. (あの時、彼に本当のことを言っておけばよかった) I wish I ( tell ) him the truth.
    答えを見る

    had told
    (過去の後悔なので仮定法過去完了 had told を使います)

  7. (今、もっと時間があればなあ) I wish I ( have ) more time.
    答えを見る

    had
    (現在の願望なので仮定法過去 had を使います)

  8. (あの時、あんなことを言わなければよかった) I wish I ( not say ) such a thing.
    答えを見る

    had not said
    (過去の後悔(否定)なので仮定法過去完了 had not said (hadn't said) を使います)

  9. (今、君が私を手伝ってくれればなあ) I wish you ( help ) me now.
    答えを見る

    would help
    (現在の願望で、相手に対する不満や強い願望を表すとき I wish you would ... を使います)

  10. (あの時、彼女に会っておけばよかった) I wish I ( meet ) her.
    答えを見る

    had met
    (過去の後悔なので仮定法過去完了 had met を使います)

  11. (今、雨が降っていなければなあ) I wish it ( not rain ) now.
    答えを見る

    were not raining
    (現在の願望(進行形)なので仮定法過去進行形 were not raining を使います)

  12. (あの時、その電車に乗り遅れなければよかった) I wish I ( not miss ) the train.
    答えを見る

    had not missed
    (過去の後悔なので仮定法過去完了 had not missed (hadn't missed) を使います)

  13. (今、犬を飼っていればなあ) I wish I ( have ) a dog.
    答えを見る

    had
    (現在の願望なので仮定法過去 had を使います)

  14. (あの時、カメラを持ってくればよかった) I wish I ( bring ) my camera.
    答えを見る

    had brought
    (過去の後悔なので仮定法過去完了 had brought を使います)

  15. (今、彼が私を好きならなあ) I wish he ( like ) me.
    答えを見る

    liked
    (現在の願望なので仮定法過去 liked を使います)

  16. (あの時、別の道を選んでいればよかった) I wish I ( choose ) another path.
    答えを見る

    had chosen
    (過去の後悔なので仮定法過去完了 had chosen を使います)

  17. (今、週末だったらなあ) I wish it ( be ) the weekend.
    答えを見る

    were
    (現在の願望なので仮定法過去 were を使います)

  18. (あの時、お金を無駄遣いしなければよかった) I wish I ( not waste ) my money.
    答えを見る

    had not wasted
    (過去の後悔なので仮定法過去完了 had not wasted (hadn't wasted) を使います)

  19. (今、隣人が静かにしてくれればなあ) I wish my neighbors ( stop ) making noise.
    答えを見る

    would stop
    (現在の願望で、相手に対する不満や強い願望を表すとき I wish ... would ... を使います)

  20. (あの時、その仕事を引き受けなければよかった) I wish I ( not take ) the job.
    答えを見る

    had not taken
    (過去の後悔なので仮定法過去完了 had not taken (hadn't taken) を使います)


4. 総合ドリル(仮定法過去 vs 過去完了 vs 丁寧な依頼)

最後の仕上げです。これまでの仮定法に加えて、仮定法の一種である「丁寧な依頼」(Would you...? / Could you...?) も含めた総合ドリルです。

文脈(特に日本語訳)をよく読んで、「今」の話(仮定法過去)か、「あの時」の話(仮定法過去完了)か、あるいは「丁寧な依頼」かを判断して、( ) 内の動詞を最も適切な形に直したり、適切な語を選んだりしてみましょう。

やってみよう!仮定法 総合クイズ(20問)

  1. (今、時間があれば、手伝えるのに) If I ( have ) time now, I ( can help ) you.
    答えを見る

    had / could help
    (「今 (now)」の話なので、仮定法過去 had / could help を使います)

  2. (昨日、時間があったら、手伝えたのに) If I ( have ) time yesterday, I ( can help ) you.
    答えを見る

    had had / could have helped
    (「昨日 (yesterday)」の話なので、仮定法過去完了 had had / could have helped を使います)

  3. ([丁寧] 窓を開けていただけますか?) ( Will / Would ) you please open the window?
    答えを見る

    Would
    (丁寧な依頼なので Would を使います。Could you...? も可能です)

  4. (今、あなたがここにいればなあ) I wish you ( be ) here now.
    答えを見る

    were
    (「今 (now)」の願望なので、仮定法過去 were を使います)

  5. (昨日、あなたがここにいてくれたらなあ) I wish you ( be ) here yesterday.
    答えを見る

    had been
    (「昨日 (yesterday)」の後悔なので、仮定法過去完了 had been を使います)

  6. (もし私があなただったら、その申し出を受けるのに) If I ( be ) you, I ( will accept ) the offer.
    答えを見る

    were / would accept
    (「今」の話(もし私があなたなら)なので、仮定法過去 were / would accept を使います)

  7. (もし彼があの電車に乗っていたら、今頃ここにいないだろう) If he ( take ) that train, he ( will not be ) here now.
    答えを見る

    had taken / would not be
    (ミックス型仮定法です。If節は「あの時(過去)」なので過去完了 had taken、主節は「今(現在)」なので仮定法過去 would not be となります)

  8. ([丁寧] ここに座ってもよろしいですか?) Would you mind if I ( sit ) here?
    答えを見る

    sat
    (Would you mind if I ...?(~してもよろしいですか?)の if の中は、仮定法過去 sat を使うのが丁寧な形です)

  9. (もしもっと早くそれを知っていたら、彼に警告したのに) If I ( know ) it earlier, I ( will warn ) him.
    答えを見る

    had known / would have warned
    (「あの時」の話(もっと早く知っていたら)なので、仮定法過去完了 had known / would have warned を使います)

  10. (もし宝くじが当たったら、家を買うのに) If I ( win ) the lottery, I ( will buy ) a house.
    答えを見る

    won / would buy
    (「今」の話(もし当たったら)なので、仮定法過去 won / would buy を使います)

  11. (あの時、あんなに食べ過ぎなければよかった) I wish I ( not eat ) so much.
    答えを見る

    had not eaten
    (「あの時」の後悔なので、仮定法過去完了 had not eaten (hadn't eaten) を使います)

  12. ([丁寧] 塩を取っていただけますか?) ( Can / Could ) you pass me the salt, please?
    答えを見る

    Could
    (Can よりも Could を使う方が丁寧な依頼になります)

  13. (もし彼が私の電話番号を知っていたら、電話してくれただろう) If he ( know ) my number, he ( will call ) me.
    答えを見る

    had known / would have called
    (文脈(電話してくれなかった)から「あの時」の話と判断し、仮定法過去完了 had known / would have called を使います)

  14. (もし彼が私の電話番号を知っていれば、電話してくるだろう) If he ( know ) my number, he ( will call ) me.
    答えを見る

    knew / would call
    (文脈(今、知らない)から「今」の話と判断し、仮定法過去 knew / would call を使います)

  15. (もし私が医者だったら、彼を助けられたかもしれないのに) If I ( be ) a doctor, I ( can help ) him.
    答えを見る

    had been / could have helped
    (文脈(彼を助けられなかった)から「あの時」の話と判断し、仮定法過去完了 had been / could have helped を使います)

  16. (もし私が医者だったら、彼を助けられるのに) If I ( be ) a doctor, I ( can help ) him.
    答えを見る

    were / could help
    (文脈(今、彼を助けられない)から「今」の話と判断し、仮定法過去 were / could help を使います)

  17. ([丁寧] もう一度言っていただけますか?) ( Will / Would ) you say that again?
    答えを見る

    Would
    (丁寧な依頼なので Would を使います)

  18. (今、車があればなあ) I wish I ( have ) a car.
    答えを見る

    had
    (「今」の願望なので、仮定法過去 had を使います)

  19. (もし彼が真実を知ったら、彼は怒るだろう) If he ( know ) the truth, he ( will be ) angry.
    答えを見る

    knew / would be
    (「今」の話(もし知ったら)なので、仮定法過去 knew / would be を使います)

  20. (もし彼が真実を知っていたら、彼は怒っただろう) If he ( know ) the truth, he ( will be ) angry.
    答えを見る

    had known / would have been
    (「あの時」の話(もし知っていたら)なので、仮定法過去完了 had known / would have been を使います)


まとめ

お疲れ様でした!仮定法のドリルはいかがでしたか?

仮定法は形が複雑に見えますが、核となるのは「時制をずらして現実との距離感を出す」というイメージです。

  • 「今」の仮定 → 過去形を使う(仮定法過去)
  • 「あの時」の仮定 → 過去完了形を使う(仮定法過去完了)

この2つのパターンをしっかり区別できるようになれば、仮定法はもう怖くありません。間違えてしまった問題も、なぜそうなるのかを解説で確認し、何度も声に出して読んでみてください。そうすることで、知識がしっかりと記憶に定着していきます!