例文で学ぶ英文法「仮定法」

このシリーズでは、英文法を例文を使って分かりやすく解説します。今回のテーマは「仮定法」です。

仮定法とは「もし~していたら」などの事実とは異なる仮想を述べたり、「~だったらいいのになぁ」などの話し手の願望を述べる場合に用いる叙法です。今回は「仮定法」「直接法」「条件文」の基本から、仮定法の応用表現までを詳しく解説します。

仮定法と直接法

仮定法の「法」は英文法の「法」ではなく、叙法(mood)の「法」です。叙法には、「仮定法」「直接法」「命令法」の3種類あります。(命令法については「命令文」のページで解説するので、ここでは省略します。)

英文法の叙法(mood)とは、話し手が話す時の話し手の気分(心的態度)を、話し手が述べる文の動詞の語形を使って表現する文法の事です。

一般的に英語の授業では条件文を使って仮定法を学びます。このページでは条件文の基本から解説します。

条件文とは

条件文とは、条件を述べる副詞節と、条件の可能性を表す主節で構成される文の事を指します。

例1は if を使った条件文です。

例1
If the yen keeps weakening, prices will go up.
円安が続けば物価は上がる。

例2のように、if節が無くても条件文を作ることができます。

例2
Unless something unexpected happens, I will participate in the opening ceremony.
不測の事態が起きない限り、開会式に参加します。

NOTE:仮定法と言えば if文のイメージが強いですが、if文 が常に仮定法だとは限りません。上記の例1と例2は、いづれも直接法の条件文です。

仮定法とは

仮定法(Subjunctive mood)とは、「現実とは違う仮想の話」「現実に起こりえない話」「話し手の願望」などを述べる為の文法です。if節で現実とは異なる条件を仮定し、主節でその条件を前提とした可能性を表現する英文で、仮定法が多く使われています。

下の例1と例2では、if節で過去完了形を使って「過去に起こった事実とは逆の事が(仮に)起こっていれば」という条件を挙げて、主節で「~だったでしょう」と述べています。

例1は、実際は過去に雨が降ったが、if節では「もし雨が降らなかったら」という逆の条件を挙げて、主節ではその条件の可能性を述べています。

例1
If it hadn’t rained, we could have gone on a hike.
雨が降らなかったら、ハイキングに行けたのに。

例2は、実際の過去は「時間がなかった」ですが、if節では「もし時間があったら」という逆の条件を挙げて、主節ではその条件の可能性を述べています。

例2
If I had had time, I could have done it by myself.
もし私に時間があったら、私一人でできただろう。

次の例文も仮定法です。if を使っていませんが、話し手の願望を表現しているので仮定法です。

I wish I were a billionaire.
億万長者だったらいいのなぁ。

※上記の仮定法と“I wish + 節”については後で詳しく解説します。

直接法とは

直接法(indicative mood)とは、ある事を事実として述べる叙法です。たとえ発言内容が事実とは違っていても、話し手の気分(心的態度)が、事実だと思って発言する限り、その文は直接法です。

以下の例文は if節 を使っていますが全て直接法です。if節では、実際に起こりうる条件を挙げ、主節では結果を述べています。

If it rains, we won’t go on a hike.
もし雨が降ったら、ハイキングには行かない。

Babies cry if they are hungry.
赤ちゃんはお腹が空いていると泣きます。

If you heat ice, it melts.
氷を温めたら、溶けます。

直接法には、次のように決まった構文があります。

If +主語+現在形(現在進行形/現在完了形), 主語+現在形

If +主語+現在形(現在進行形/現在完了形), 主語+助動詞(will/can/etc.)+現在形

If +主語+will+現在形, 主語+助動詞(will/can/etc.)+現在形

※主節は命令文や疑問文に置き換えてもOKです

仮定法と直接法の違い

ifを使ったの条件文が直接法であるか?それとも仮定法であるか?の判断のポイントは、主節の助動詞です。(例外もありますが、その場合は前後の文脈で判断します。)

NOTE:主節に助動詞が無い場合は直接法です。

直接法

次の例のif節では、現在形の動詞を使って単なる条件を述べています。そして主節では will を使って、話し手が実現すると考えている未来の姿を述べています。

If you study hard, you will pass the exam.
懸命に勉強すれば、あなたは試験に合格するだろう。
※直接法の条件文

仮定法過去

下の例1のif節では、過去形の studied を使っています。そして主節では would を使って可能性を述べています。「If+主語+過去形 ~, 主語+would+原型」は仮定法過去の構文です。

実際は懸命に勉強していないが、if節では「懸命に勉強していれば」という逆の条件を挙げて、主節ではその条件の「現在の可能性」を述べています。

例1
If you studied hard, you would pass the exam.
懸命に勉強していれば、あなたは試験に合格するだろう。
※「If+主語+過去形, 主語+would+原型」は仮定法過去

下の例2のif節では、実際は天才ではないが、「あなたが天才であれば」という事実とは違う仮想の条件を挙げて、主節ではその条件の「現在の可能性」を述べています。

例2
If you were a genius, you could pass the exam without studying.
あなたが天才であれば、勉強しなくても試験に合格できるでしょう。
※仮定法の条件文

仮定法過去完了

下の例の if節では、過去完了形の had studied を使っています。そして主節では would have passed を使って「空想上の過去の可能性」を述べています。「If+主語+過去完了形 ~, 主語+would+have+過去分詞」は仮定法過去完了の構文です。

実際の過去は、懸命に勉強していなかったが、if節では「懸命に勉強していたら」という逆の条件を挙げて、主節ではその条件の「過去の可能性」を述べています。

If you had studied hard, you would have passed the exam.
懸命に勉強していたら、あなたは試験に合格していたでしょう。
※「If+主語+過去完了形, 主語+would+have+過去分詞」は仮定法過去完了

仮定法の用法

仮定法には、仮定法過去、仮定法過去完了の2つの用法があり、仮定法過去は現在や未来の可能性について述べ、仮定法過去完了は過去の可能性について述べる場合に使います。

仮定法過去

仮定法過去は「現在」のことについて「もし~ならば、(今)…なのに」と述べるための表現です。

【仮定法過去】
If+主語+動詞の過去形~, 主語+助動詞の過去形(would, could, should, might)+動詞の原形

コンマ後の主節には助動詞の過去形である would / could / should / might のいずれかを用います。一般的に用いられることが多いのは would と could です。

If I knew his phone number, I would call him.
彼の電話番号を知っていれば、私は電話します。

If I won the lottery, I would buy a new car.
もし宝くじが当たったら、私は新しい車を買います。

次の例文のように、主語が I(単数)の場合でも be動詞は were を使います。話し言葉では was を使うこともあります。

If I were you, I would apologize to your mom first.
If I was you, I would apologize to your mom first.

もし私があなたなら、先ずはお母さんに謝るだろう。

仮定法過去完了

仮定法過去完了とは、過去の事実に対して、反することを仮定する表現です。日本語だと「もし~だったならば、(過去において)…だったのに」と言います。

【仮定法過去完了】
If+主語+動詞の過去完了形, 主語+助動詞の過去形(would, could, should, might)+have+過去分詞

If I had left 5 minutes earlier, I could have caught the bus.
5分早く出ていれば、バスに間に合っていただろう。

If he had studied harder, he would have passed the exam.
彼がもっと勉強していれば、試験に合格していただろう。

If I had been more careful, I would not have had an accident.
もっと注意深くしていれば、事故に遭わなかっただろう。

If you had gone to bed earlier, you wouldn’t have been so tired.
もっと早く寝ていたら、こんなに疲れていなかっただろう。

were to を使った仮定法

下の例の were to は「仮に~するとしたら」の意味合いの仮定法です。“If 主語 were to 原形” は、現実化するかもしれない仮定から、あり得ない仮定まで、起こる可能性に関係なく使います。

If I were to be the mayor, I would build an amusement park.
もし私が市長だったら、遊園地を建設するだろう。

If the world were to end tomorrow, what would you do today?
もし明日世界が終わるとしたら、あなたは今日何をしますか?

should を使った仮定法

下の例の should は「ひょっとして(万が一)~ならば」の意味合いの仮定法です。“If 主語 should 原形”は、現実化するかは分からないが、起こる可能性が低いことについて述べる場合に使います。

If you should get straight A’s, I would buy you lunch.
もしオールAをとったら、あなたにランチをおごってあげる。

下の例文のように、shouldを使った仮定法の場合、主節に助動詞の過去形を使わないこともあります。

If you should meet her, please tell her to call me.
もし彼女に会ったら、私に電話するように伝えてください。

If I should fail, I will just try again.
万が一失敗したら、もう一度やってみるだけだ。

if節の倒置

下の例文のように、if節で were/had/should の何れかを使っている仮定法の場合、if を削除して were/had/should を節の先頭に置くことができます。これを「倒置」と呼びます。

【仮定法過去】
If I were single, I would ask you out on a date.
私が独身だったら、あなたをデートに誘うだろう。

【倒置】
Were I single, I would ask you out on a date.
※if を削除し、were を節の先頭に置く

【仮定法過去完了】
If you had invested $10000 in Bitcoin, you would have earned a significant profit.
ビットコインに10000ドルを投資していれば、あなたは大きな利益を上げていただろう。

【倒置】
Had you invested $10000 in Bitcoin, you would have earned a significant profit.
※if を削除して、had を節の先頭に置く

【shouldを使った仮定法】
If your smartphone should break down within the first month, it would be replaced free of charge.
もし1ヶ月以内にスマートフォンが故障した場合、無料で交換いたします。

【倒置】
Should your smartphone break down within the first month, it would be replaced free of charge.
※if を削除して、Should を節の先頭に置く

if を使わない仮定法

仮定法の表現には、if を使わない構文もあります。ここでは if の代わりに、but for / without / with / otherwise / to不定詞を使った仮定法を紹介します。

but for / withoutを使った仮定法

if の代わりに but for または without を使った仮定法は、「~がなければ…だろう/だっただろう」という意味を表します。主節の作りは if を使った仮定法と同じです。

【仮定法過去】
But for your help, I wouldn’t be able to finish this work.
あなたの助けがなければ、この仕事を終わらせることはできないだろう。

【仮定法過去完了】
Without your help, I wouldn’t have been able to finish this work.
あなたの助けがなければ、この仕事を終わらせることはできなかっただろう。

【NOTE】but for は前置詞のイディオム、without は前置詞であるため、節ではなく名詞、または名詞句を用います。

with を使った仮定法

with を使った仮定法は、but for、withoutを使った仮定法の逆で「~があれば…だろう/だっただろう」という意味を表します。but for、withoutを使った仮定法と同様に、直後には節ではなく名詞、または名詞句を用います。

【仮定法過去】
With your help, I would be able to finish this work.
あなたの助けがあれば、この仕事を終わらせることができるのに。

【仮定法過去完了】
With your help, I would have been able to finish this work.
あなたの助けがあれば、この仕事を終わらせることができたのに。

otherwise を使った仮定法

otherwise は「さもなければ、もしそうでなければ」の意味で、接続詞的に使うことができる副詞です。

次の例文の otherwise は “If I hadn’t left immediately”の意味合いを含んでおり、この仮定に対して、事実とは異なる過去の可能性を述べます。

【仮定法過去完了】
I left immediately; otherwise I would have missed the train.
私はすぐに出発した。そうしないと電車を逃していただろう。

to不定詞を使った仮定法

以下の構文は仮定法を使った条件文です。主節に would があれば仮定法、無ければ直接法の条件文か、又は条件文以外の用法の場合もあります。

To 不定詞 ~, 主語 + would + 現在形 ~

【仮定法過去】
To hear her speak, you would think she was a native English speaker.
彼女が話すのを聞けば、彼女は英語母語話者だとあなたは思うでしょう。

この例を if を使った仮定法で書き換えると次のようになります。

If you heard her speak, you would think she was a native English speaker.
彼女が話すのを聞けば、彼女は英語母語話者だとあなたは思うでしょう。

think (that) 節の“she was ~”は、“she is ~”でもOKです。

仮定法の重要構文

ここでは良く使われる仮定法の重要構文、I wish / if only / as if を解説します。

wish を使った仮定法

次の wish の構文は仮定法です。「~だといいのに(現在)」「~だったら良かったのに(過去)」の意味で、非現実的な願望を述べる時に使います。

(現在の願望)I wish (that) 主語 + 過去形
(過去の願望)I wish (that) 主語 + had + 過去分詞
※wish の後の that は通常省略する

以下の例文では、wishは現在形ですが、「実際とは異なる現在の状況」について述べているため過去形(were、could)が使われています。

【仮定法過去】
I were a teenager.
10代だったらいいのになぁ。

【仮定法過去】
I wish I could travel to the moon.
月に行けたらいいのになぁ。

以下の例文では、「行けなかった」という過去に対して、「行きたかった」という願望を述べているため、過去完了形(had been)が使われています。

【仮定法過去完了】
I wish you had let me know the truth
本当のことを教えてくれたらよかったのに。

if only を使った仮定法

if only は「~だといいのに(現在)」「~だったら良かったのに(過去)」の意味。wish と同じ意味ですが、if only の方が願望がより強い。if only 節の時制は上記 wish と同じ考え方です。

【仮定法過去】
If only I could earn much money.
お金をたくさん稼げればいいのになぁ。

【仮定法過去完了】
If only iPhone 13 had been sold at a lower price.
iPhone 13が安く売られていればよかったのになぁ。

as if を使った仮定法

as if は「まるで~のように」、「まるで~であるかのように」という意味のイディオムです。as if 節の時制は上記 wish と同じ考え方です。

【仮定法過去】
He talks as if he knew everything.
彼はまるですべてを知っているかのように話す。

【仮定法過去完了】
She talks about the Royal Wedding as if she had been there.
彼女は王室の結婚式のことを、まるで見てきたかのように話す。

仮定法の慣用表現

ここでは良く使われる仮定法の慣用表現、If it were not for(仮定法過去) と If it had not been for(仮定法過去完了)を解説します。

If it were not for ~

“If it were not for” は「もし~がなければ」の意味の慣用表現です。現在の事実とは反対の仮定条件を述べる時に使います。

If it were not for your financial support, my business would fail.
あなたの資金援助が無ければ、私の事業は失敗するだろう。

If it were not for electricity, you would live an inconvenient life.
もし電気がなければ、不便な生活を送るだろう。

“If it were not for electricity”の it(形式主語)は“electricity”を指しています。“If electricity is not”と並べ替えると「もし電気が存在しなければ」と訳すことが可能です。

次の例のように“If it were not for” は “Without(~がなければ / なかったら)” 又は “But for(~がなければ / なかったら)”と置き換え可能です。

Without electricity, you would live an inconvenient life.

If it had not been for ~

“If it had not been for” は「もし~がなかったら」の意味の慣用表現です。“過去”の事実とは反対の仮定条件を述べる時に使います。

If it had not been for my parent’s support, I would have never been able to go to university.
もし両親の援助がなかったら、私は大学に行くことができなかっただろう。

If it had not been for your financial support, my business would have failed.
あなたの資金援助が無かったならば、私の事業は失敗していたでしょう。

次の例のように“If it had not been for” は “Without(~がなければ / なかったら)” 又は “But for(~がなければ / なかったら)”と置き換え可能です。

But for your financial support, my business would have failed.

例文で学ぶ英文法 (目次)

英文法の一覧と解説