【大人の学び直し英語】仮定法 徹底攻略ドリル
前回の記事「【大人の学び直し英語】仮定法の完全ガイド」では、「もし~だったら」という現実とは違うことを想定する「仮定法」の基本的な考え方を学びました。
【大人の学び直し英語】仮定法の使い方完全ガイド|仮定法過去・過去完了の違いを徹底解説 - 月影
「現在の話なのに過去形を使う」「過去の話なのに過去完了形を使う」という「時制のズレ」が、仮定法の「現実との距離感」を表す核心でしたね。
今回は、その大切な知識を「記憶に定着させる」ための実践ドリルです。「仮定法過去」「仮定法過去完了」「I wish」という仮定法の3大パターンを、合計80問のクイズで徹底的に復習します。「わかる」を「できる」に変えるために、ぜひチャレンジしてみてください!
1. 仮定法過去ドリル(現在の事実に反する仮定)
まずは「仮定法過去」の練習です。これは「(今は違うけど)もし今~だったら、~するのに」という、現在の事実とは異なる願望や想像を表す表現です。
現在の話ですが、「現実ではない」という距離感を出すために、動詞の時制を一つずらして「過去形」を使うのがルールです。
- 公式:
If + 主語 + 動詞の過去形, 主語 + would/could/might + 動詞の原形 - ポイント: be動詞は、主語が I / He / She であっても
wereを使うのが伝統的な形です。
括弧内の動詞を、仮定法過去の正しい形(If節は過去形、主節は would/could + 原形)に直してみましょう。
やってみよう!仮定法過去クイズ(20問)
- If I ( be ) a bird, I ( can fly ) to you. (もし私が鳥だったら、あなたのところに飛んでいけるのに)
答えを見る
were / could fly
(現在の事実に反する仮定です。If節のbe動詞は were、主節は「できるのに」なので could fly となります) - If I ( have ) more money, I ( will buy ) that car. (もしもっとお金があれば、あの車を買うのに)
答えを見る
had / would buy
(現実:お金がない。If節は過去形の had、主節は「買うのに」なので would buy となります) - If I ( know ) his phone number, I ( will call ) him. (もし彼の電話番号を知っていれば、彼に電話するのに)
答えを見る
knew / would call
(現実:知らない。If節は過去形の knew、主節は would call となります) - What ( will ) you ( do ) if you ( win ) the lottery? (もし宝くじに当たったら、何をしますか?)
答えを見る
would / do / won
(現在の事実に反する仮定の疑問文です。主節は would ... do、If節は過去形の won となります) - If I ( be ) you, I ( will not do ) that. (もし私があなただったら、そんなことはしないのに)
答えを見る
were / would not do
(If I were you は「もし私があなたなら」という決まり文句です。主節は would not do となります) - If he ( live ) nearer, we ( can meet ) more often. (もし彼がもっと近くに住んでいたら、もっと頻繁に会えるのに)
答えを見る
lived / could meet
(If節は過去形の lived、主節は「会えるのに」という可能性なので could meet となります) - I ( will help ) you if I ( have ) time. (もし時間があれば、手伝うのに)
答えを見る
would help / had
(主節から始まってもルールは同じです。現実:時間がない) - If she ( be ) here, she ( will know ) the answer. (もし彼女がここにいれば、答えを知っているだろうに)
答えを見る
were / would know
(If節のbe動詞は were、主節は would know となります) - If I ( can speak ) French, I ( will travel ) to France. (もしフランス語が話せたら、フランスに旅行するのに)
答えを見る
could speak / would travel
(「もし~できるなら」と能力の仮定は If I could ... を使います。If節が could なので、主節は would を使います) - The weather is bad. If it ( be ) sunny, we ( will go ) to the beach. (天気が悪い。もし晴れていれば、ビーチに行くのに)
答えを見る
were / would go
(現在の天気が悪いという事実に反する仮定です) - If I ( have ) a car, I ( can drive ) you home. (もし車を持っていたら、家まで送ってあげられるのに)
答えを見る
had / could drive
(現実:車を持っていない。主節は「できるのに」なので could drive です) - He ( will be ) happier if he ( change ) his job. (もし彼が仕事を変えれば、もっと幸せだろうに)
答えを見る
would be / changed
(主節から始まっています。would be / changed となります) - If I ( be ) rich, I ( will travel ) around the world. (もし私がお金持ちだったら、世界一周旅行をするのに)
答えを見る
were / would travel
(定番の例文です。were / would travel です) - If I ( not be ) so busy, I ( will join ) you. (もしこんなに忙しくなければ、あなたに合流するのに)
答えを見る
were not / would join
(仮定法過去の否定文です。were not (weren't) / would join です) - If I ( own ) that house, I ( will paint ) it blue. (もしあの家を持っていたら、青く塗るのになあ)
答えを見る
owned / would paint
(If節は過去形の owned、主節は would paint となります) - ( Will ) you ( move ) here if you ( get ) the job? (もしその仕事を得たら、ここに引っ越してきますか?)
答えを見る
Would / move / got
(仮定法過去の疑問文です。Would you move / got となります) - If I ( be ) the president, I ( will change ) the law. (もし私が大統領なら、その法律を変えるのに)
答えを見る
were / would change
(If I were ... の形です) - If my dog ( can talk ), I ( will ask ) him many things. (もし私の犬が話せたら、たくさんのことを聞くのに)
- If he ( study ) harder, he ( can get ) better grades. (もし彼がもっと勉強すれば、もっと良い成績がとれるのに)
答えを見る
studied / could get
(現実:あまり勉強しない。studied / could get です) - 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問)
- If I ( study ) harder, I ( will pass ) the exam. (もしもっと一生懸命勉強していたら、試験に合格していただろうに)
答えを見る
had studied / would have passed
(現実:勉強しなかった。If節は過去完了 had studied、主節は would have passed です) - If you ( tell ) me the truth, I ( can help ) you. (もし君が本当のことを話してくれていたら、助けることができたのに)
答えを見る
had told / could have helped
(現実:話さなかった。If節は had told、主節は「できたのに」なので could have helped です) - If I ( know ) you were coming, I ( will bake ) a cake. (もし君が来ると知っていたら、ケーキを焼いていただろうに)
答えを見る
had known / would have baked
(現実:知らなかった。had known / would have baked です) - 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 です) - If I ( take ) the taxi, I ( will arrive ) on time. (もしタクシーに乗っていたら、時間通りに到着していただろうに)
答えを見る
had taken / would have arrived
(現実:乗らなかった。had taken / would have arrived です) - She ( will not make ) such a mistake if she ( be ) more careful. (もし彼女がもっと注意深かったら、そんな間違いはしなかっただろうに)
答えを見る
would not have made / had been
(主節から始まっています。would not have made / had been です) - If I ( be ) there, I ( can stop ) him. (もし私がそこにいたら、彼を止めることができたのに)
答えを見る
had been / could have stopped
(現実:いなかった。had been / could have stopped です) - 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) です) - 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 です) - If he ( follow ) my advice, he ( will succeed ). (もし彼が私のアドバイスに従っていたら、成功していただろうに)
答えを見る
had followed / would have succeeded
(現実:従わなかった。had followed / would have succeeded です) - I ( can buy ) the ticket if I ( have ) enough money. (もし十分なお金を持っていたら、そのチケットを買えたのに)
答えを見る
could have bought / had had
(主節から始まっています。「持っていたら」は had の過去完了形 had had となります) - If I ( see ) you, I ( will say ) hello. (もしあなたを見かけていたら、挨拶しただろうに)
答えを見る
had seen / would have said
(現実:見かけなかった。had seen / would have said です) - If you ( ask ) me, I ( will lend ) you the book. (もし私に頼んでくれていたら、その本を貸してあげたのに)
答えを見る
had asked / would have lent
(lend の過去分詞は lent です。had asked / would have lent です) - If they ( invite ) me, I ( will go ) to the party. (もし彼らが私を招待してくれていたら、パーティーに行っただろうに)
答えを見る
had invited / would have gone
(現実:招待されなかった。had invited / would have gone です) - He ( will not be ) so tired if he ( sleep ) well. (もし彼がよく寝ていたら、そんなに疲れていなかっただろうに)
答えを見る
would not have been / had slept
(主節から始まっています。would not have been / had slept です) - 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 です) - If the driver ( be ) more careful, the accident ( will not happen ). (もし運転手がもっと注意深かったら、事故は起こらなかっただろうに)
答えを見る
had been / would not have happened
(had been / would not have happened です) - If I ( choose ) a different major, my life ( will be ) different. (もし違う専攻を選んでいたら、私の人生は違っていただろうに)
答えを見る
had chosen / would have been
(choose の過去分詞は chosen です。had chosen / would have been です) - We ( can win ) the game if he ( play ). (もし彼が試合に出ていたら、私たちは勝てたかもしれないのに)
答えを見る
could have won / had played
(主節から始まっています。「勝てたかも」なので could have won / had played です) - 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問)
- (今、もっと背が高ければなあ) I wish I ( be ) taller.
答えを見る
were
(現在の願望なので仮定法過去を使います。be動詞は were です) - (あの時、あの株を買っておけばよかった) I wish I ( buy ) that stock.
答えを見る
had bought
(過去の後悔なので仮定法過去完了 had bought を使います) - (今、英語が流暢に話せたらなあ) I wish I ( can speak ) English fluently.
答えを見る
could speak
(現在の願望(能力)なので仮定法過去 could speak を使います) - (あの時、もっと勉強しておけばよかった) I wish I ( study ) harder.
答えを見る
had studied
(過去の後悔なので仮定法過去完了 had studied を使います) - (今、ここに彼がいればなあ) I wish he ( be ) here.
答えを見る
were
(現在の願望なので仮定法過去 were を使います) - (あの時、彼に本当のことを言っておけばよかった) I wish I ( tell ) him the truth.
答えを見る
had told
(過去の後悔なので仮定法過去完了 had told を使います) - (今、もっと時間があればなあ) I wish I ( have ) more time.
答えを見る
had
(現在の願望なので仮定法過去 had を使います) - (あの時、あんなことを言わなければよかった) I wish I ( not say ) such a thing.
答えを見る
had not said
(過去の後悔(否定)なので仮定法過去完了 had not said (hadn't said) を使います) - (今、君が私を手伝ってくれればなあ) I wish you ( help ) me now.
答えを見る
would help
(現在の願望で、相手に対する不満や強い願望を表すとき I wish you would ... を使います) - (あの時、彼女に会っておけばよかった) I wish I ( meet ) her.
答えを見る
had met
(過去の後悔なので仮定法過去完了 had met を使います) - (今、雨が降っていなければなあ) I wish it ( not rain ) now.
答えを見る
were not raining
(現在の願望(進行形)なので仮定法過去進行形 were not raining を使います) - (あの時、その電車に乗り遅れなければよかった) I wish I ( not miss ) the train.
答えを見る
had not missed
(過去の後悔なので仮定法過去完了 had not missed (hadn't missed) を使います) - (今、犬を飼っていればなあ) I wish I ( have ) a dog.
答えを見る
had
(現在の願望なので仮定法過去 had を使います) - (あの時、カメラを持ってくればよかった) I wish I ( bring ) my camera.
答えを見る
had brought
(過去の後悔なので仮定法過去完了 had brought を使います) - (今、彼が私を好きならなあ) I wish he ( like ) me.
答えを見る
liked
(現在の願望なので仮定法過去 liked を使います) - (あの時、別の道を選んでいればよかった) I wish I ( choose ) another path.
答えを見る
had chosen
(過去の後悔なので仮定法過去完了 had chosen を使います) - (今、週末だったらなあ) I wish it ( be ) the weekend.
答えを見る
were
(現在の願望なので仮定法過去 were を使います) - (あの時、お金を無駄遣いしなければよかった) I wish I ( not waste ) my money.
答えを見る
had not wasted
(過去の後悔なので仮定法過去完了 had not wasted (hadn't wasted) を使います) - (今、隣人が静かにしてくれればなあ) I wish my neighbors ( stop ) making noise.
答えを見る
would stop
(現在の願望で、相手に対する不満や強い願望を表すとき I wish ... would ... を使います) - (あの時、その仕事を引き受けなければよかった) I wish I ( not take ) the job.
答えを見る
had not taken
(過去の後悔なので仮定法過去完了 had not taken (hadn't taken) を使います)
4. 総合ドリル(仮定法過去 vs 過去完了 vs 丁寧な依頼)
最後の仕上げです。これまでの仮定法に加えて、仮定法の一種である「丁寧な依頼」(Would you...? / Could you...?) も含めた総合ドリルです。
文脈(特に日本語訳)をよく読んで、「今」の話(仮定法過去)か、「あの時」の話(仮定法過去完了)か、あるいは「丁寧な依頼」かを判断して、( ) 内の動詞を最も適切な形に直したり、適切な語を選んだりしてみましょう。
やってみよう!仮定法 総合クイズ(20問)
- (今、時間があれば、手伝えるのに) If I ( have ) time now, I ( can help ) you.
答えを見る
had / could help
(「今 (now)」の話なので、仮定法過去 had / could help を使います) - (昨日、時間があったら、手伝えたのに) If I ( have ) time yesterday, I ( can help ) you.
答えを見る
had had / could have helped
(「昨日 (yesterday)」の話なので、仮定法過去完了 had had / could have helped を使います) - ([丁寧] 窓を開けていただけますか?) ( Will / Would ) you please open the window?
答えを見る
Would
(丁寧な依頼なので Would を使います。Could you...? も可能です) - (今、あなたがここにいればなあ) I wish you ( be ) here now.
答えを見る
were
(「今 (now)」の願望なので、仮定法過去 were を使います) - (昨日、あなたがここにいてくれたらなあ) I wish you ( be ) here yesterday.
答えを見る
had been
(「昨日 (yesterday)」の後悔なので、仮定法過去完了 had been を使います) - (もし私があなただったら、その申し出を受けるのに) If I ( be ) you, I ( will accept ) the offer.
答えを見る
were / would accept
(「今」の話(もし私があなたなら)なので、仮定法過去 were / would accept を使います) - (もし彼があの電車に乗っていたら、今頃ここにいないだろう) If he ( take ) that train, he ( will not be ) here now.
答えを見る
had taken / would not be
(ミックス型仮定法です。If節は「あの時(過去)」なので過去完了 had taken、主節は「今(現在)」なので仮定法過去 would not be となります) - ([丁寧] ここに座ってもよろしいですか?) Would you mind if I ( sit ) here?
答えを見る
sat
(Would you mind if I ...?(~してもよろしいですか?)の if の中は、仮定法過去 sat を使うのが丁寧な形です) - (もしもっと早くそれを知っていたら、彼に警告したのに) If I ( know ) it earlier, I ( will warn ) him.
答えを見る
had known / would have warned
(「あの時」の話(もっと早く知っていたら)なので、仮定法過去完了 had known / would have warned を使います) - (もし宝くじが当たったら、家を買うのに) If I ( win ) the lottery, I ( will buy ) a house.
答えを見る
won / would buy
(「今」の話(もし当たったら)なので、仮定法過去 won / would buy を使います) - (あの時、あんなに食べ過ぎなければよかった) I wish I ( not eat ) so much.
答えを見る
had not eaten
(「あの時」の後悔なので、仮定法過去完了 had not eaten (hadn't eaten) を使います) - ([丁寧] 塩を取っていただけますか?) ( Can / Could ) you pass me the salt, please?
答えを見る
Could
(Can よりも Could を使う方が丁寧な依頼になります) - (もし彼が私の電話番号を知っていたら、電話してくれただろう) If he ( know ) my number, he ( will call ) me.
答えを見る
had known / would have called
(文脈(電話してくれなかった)から「あの時」の話と判断し、仮定法過去完了 had known / would have called を使います) - (もし彼が私の電話番号を知っていれば、電話してくるだろう) If he ( know ) my number, he ( will call ) me.
答えを見る
knew / would call
(文脈(今、知らない)から「今」の話と判断し、仮定法過去 knew / would call を使います) - (もし私が医者だったら、彼を助けられたかもしれないのに) If I ( be ) a doctor, I ( can help ) him.
答えを見る
had been / could have helped
(文脈(彼を助けられなかった)から「あの時」の話と判断し、仮定法過去完了 had been / could have helped を使います) - (もし私が医者だったら、彼を助けられるのに) If I ( be ) a doctor, I ( can help ) him.
答えを見る
were / could help
(文脈(今、彼を助けられない)から「今」の話と判断し、仮定法過去 were / could help を使います) - ([丁寧] もう一度言っていただけますか?) ( Will / Would ) you say that again?
答えを見る
Would
(丁寧な依頼なので Would を使います) - (今、車があればなあ) I wish I ( have ) a car.
答えを見る
had
(「今」の願望なので、仮定法過去 had を使います) - (もし彼が真実を知ったら、彼は怒るだろう) If he ( know ) the truth, he ( will be ) angry.
答えを見る
knew / would be
(「今」の話(もし知ったら)なので、仮定法過去 knew / would be を使います) - (もし彼が真実を知っていたら、彼は怒っただろう) If he ( know ) the truth, he ( will be ) angry.
答えを見る
had known / would have been
(「あの時」の話(もし知っていたら)なので、仮定法過去完了 had known / would have been を使います)
まとめ
お疲れ様でした!仮定法のドリルはいかがでしたか?
仮定法は形が複雑に見えますが、核となるのは「時制をずらして現実との距離感を出す」というイメージです。
- 「今」の仮定 → 過去形を使う(仮定法過去)
- 「あの時」の仮定 → 過去完了形を使う(仮定法過去完了)
この2つのパターンをしっかり区別できるようになれば、仮定法はもう怖くありません。間違えてしまった問題も、なぜそうなるのかを解説で確認し、何度も声に出して読んでみてください。そうすることで、知識がしっかりと記憶に定着していきます!