文法 / 仮定法
その他の仮定法表現(without/but for, if onlyなど)
要点整理
without / but for(もし〜がなければ)
without と but for は、どちらも「もし〜がなければ」「もし〜がなかったら」という意味を表し、if it were not for〜(現在)や if it had not been for〜(過去)と書きかえることができます。
現在の事実に反する仮定
Without your help, I couldn't finish this project. = If it were not for your help, I couldn't finish this project. (あなたの助けがなければ、私はこのプロジェクトを終えられないだろう。)
過去の事実に反する仮定
But for his advice, I would have made a serious mistake. = If it had not been for his advice, I would have made a serious mistake. (彼の助言がなかったら、私は重大な間違いを犯していただろう。)
現在のことか過去のことかは、without/but for自体からは判断できないため、主節の動詞の形(仮定法過去か仮定法過去完了か)を見て判断します。
if only(強い願望)
if only は I wish よりも切実な、強い願望を表す表現です。「〜でありさえすればいいのに」という意味で、あとの時制のルールは I wish とまったく同じです。
If only I had listened to my parents' advice!(あのとき両親の助言を聞いていさえすればよかったのに!)
if only の文はしばしば感嘆符(!)で終わり、if only だけで主節を伴わずに使われることも多くあります。
仮定法の倒置
if を使わずに、If S were〜、If S had〜、If S should〜のifを省略し、were・had・shouldを主語の前に出すことで、同じ仮定の意味を表すことができます。これを仮定法の倒置と呼びます。書き言葉やフォーマルな文でよく使われます。
仮定法過去の倒置(Were S〜)
If I were rich, I would buy this house. = Were I rich, I would buy this house. (もし私がお金持ちだったら、この家を買うだろう。)
仮定法過去完了の倒置(Had S 過去分詞〜)
If she had known the truth, she would have acted differently. = Had she known the truth, she would have acted differently. (もし彼女が真実を知っていたら、違う行動をとっていただろう。)
仮定法未来の倒置(Should S 原形〜)
If you should have any questions, please contact us. = Should you have any questions, please contact us. (万一質問があれば、私たちにご連絡ください。)
倒置の形にするときは、ifを消してwere・had・shouldをそのまま主語の前に移動させるだけでよく、do/does/didのような助動詞を新たに補う必要はありません。
注意: 倒置ができるのは、If節の動詞が were・had(+過去分詞)・should である場合に限られます。If I knew the truth(一般動詞knowの過去形)のような文は、Knew I the truth のような形に倒置することはできません。一般動詞を使った仮定法過去の文は、ifを残したままの形で使います。
例題
例題1(基本)
問題
次の英文を、if it were not for を使ってほぼ同じ意味の文に書きかえよ。
Without music, my life would be boring.
解答・解説を見る
without を if it were not for に置きかえます。主節が仮定法過去の形(would be)なので、現在の事実に反する仮定であることに合わせます。
答え:If it were not for music, my life would be boring.(音楽がなければ、私の人生は退屈なものになるだろう。)
例題2(標準)
問題
次の英文を、ifを使わない倒置の形に書きかえよ。
If she had arrived a few minutes earlier, she would have met him.
解答・解説を見る
If節は had arrived(仮定法過去完了)なので、ifを消してhadを主語(she)の前に出します。過去分詞arrivedはそのままの位置に残します。
答え:Had she arrived a few minutes earlier, she would have met him.(もし彼女がもう数分早く着いていたら、彼に会えていただろうに。)
例題3(応用)
問題
次の日本語を、if onlyを使って英語に直せ。「もっと早く出発してさえいれば、渋滞に巻き込まれなかっただろうに。」
解答・解説を見る
「もっと早く出発してさえいれば」は過去の事実に反する切実な願望なので、if only のあとに仮定法過去完了(had + 過去分詞)を続けます。主節には、その願望が叶っていたら得られていたはずの結果(渋滞に巻き込まれなかっただろう)を、仮定法過去完了の主節の形(would have + 過去分詞)で続けます。
答え:If only we had left earlier, we wouldn't have been caught in the traffic jam.
確認問題
問題
次の英文を、withoutを使ってほぼ同じ意味の文に書きかえよ。
If it were not for your support, I would give up on my dream.
答え
Without your support, I would give up on my dream.(あなたの支えがなければ、私は夢をあきらめてしまうだろう。)