仮定法過去完了とは?仮定法過去との違いを例文とともに解説【演習問題付き】

今回は仮定法過去完了とは何かについて解説します。仮定法過去完了とは、ありえなかった過去の出来事についての事柄を述べる際の文法です。

 

田中くん
田中くん

過去のありえない事実?仮定法過去完了って難しいのかな?

 

仮定法過去完了を表現するのには、日本語にはない「大過去」という便利なツールで表現することになります。would have 過去分詞などの形ですね。詳しくは下で述べます。

 

また、記事を読むだけでは力にならないので最後には仮定法の問題も用意しました。みなさんの仮定法の理解度のチェックに役立ててください!

 

ちなみに仮定法過去については「【仮定法過去】高校英語の仮定法とは?英文法の仮定法過去を例文とともに解説」に詳しいのでそちらも合わせて読んでください。

 

今回の記事を読んだらわかること・英文法の仮定法過去完了とは何かがわかる

・仮定法過去と仮定法過去完了の違いを理解できる

・would, could, might, + have +過去分詞 がわかる

スポンサーリンク
スポンサーリンク

仮定法過去と仮定法過去完了はどう違うの?仮定法過去完了の時制について

仮定法過去完了と仮定法過去のちがい

仮定法とは事実とは異なるあり得ない事柄を述べる表現でしたね。前回は現在のあり得ない話を述べるときに現実との距離を示すため、時制をひとつずらして過去形にする「仮定法過去」を学びました。

 

公式を振り返ってみましょう。

仮定法過去のかたち(公式)

「今」こうだったら~だったのに。という場合は上記の公式で言いあらわすことができましたね。例文をあげますと

 

・If I were a rich, I could buy the video game. (もし[今]お金持ちなら、ゲームを買うことができるのに。)

 

仮定法過去は現在のあり得ない話について述べていて、仮定法過去完了は過去のあり得ない話について述べたい時に使います。

 

仮定法過去の名前に過去という文字が入っているのでややこしいですが、あくまでそれは現実との距離を置くために過去形を使いますよ!という過去形の「過去」の意味であり、時間は現在のお話です。

 

過去のあり得ない話についてはこれまた現実との距離を置くためにさらにもうひとつ時制をずらし大過去の過去完了に登場してもらいます。ここが重要なポイントですのでしっかり理解してしまいましょう。

 

仮定法過去完了の公式

では、「過去にこうだったら、(過去に)~だったろうに」と過去のあり得ない事柄(=実際には起こらなかった事柄)を述べたい場合はどうなるのでしょうか。

 

現在のことは過去形で事実と想像との距離をあらわしましたので、過去の事は過去完了形で事実との距離を取り仮定法過去完了であらわします。そのため、下記の公式になります。

 

仮定法過去完了のかたち(公式)

仮定法では、現実に起こりえないことを話しますので、現実から遠ざかるために時制をずらして表現するのでひとつずつ時制がずれていきます。先ほどの例文を仮定法過去完了で公式どおりにあらわしてみましょう。

 

・If I had been a rich, I could have bought the video game. (もし[過去に]お金持ちだったら、ゲームを買うことができただろうに。)

 

仮定法過去完了の場合、過去の事柄についてこうだったら~だったのに、と述べるので後悔や弁解などをあらわすことが多いです。

 

仮定法過去の回で学んだように、would(~だろうに)、could(~できるのに)、might(~かもしれないのに)という助動詞の意味は変わりません。その為、後ろにhave+過去分詞がくれば下記の意味になります。

 

仮定法過去完了のときは…◆ would + have + 過去分詞:~だっただろうに。

◆ could + have + 過去分詞:~できただろうに。

◆ might+ have + 過去分詞:~かもしれなかったろうに。

 

さて、もうひとつ仮定法過去完了を例文で確認しましょう。

 

・If I had known his phone number, I would have called him.(彼の電話番号を知っていたら、彼に電話しただろうに。)

 

例文からは少し後悔の念が感じられますね…。みなさんは後悔の無いように行動しましょうね。

 

仮定法の問題

それでは、今回学んだ仮定法過去完了の問題を解いてみましょう。答えはチェックボックスを押すと出てきます。

 

1.If  I (   )free, I could have gone with her.(私に暇があったら、彼女と一緒に行けたのに。)

(ア)have been  (イ)had been (ウ)have  (エ)had

(イ)If I(イ)had been free, I could have gone with her.(私に暇があったら、彼女と一緒に行けたのに。)主節の動詞が完了形になっているので、公式に基づいて考えるとif節の動詞は過去完了形になります。よって解答は(イ)です。

 

2.If I (   )the train, I would have been present at the meeting.(もしその電車に間に合っていたら、その会議に出席できただろうに。)

(ア)had caught (イ)were (ウ)have caught (エ)had taken

If I(ア)had caught the train, I would have been present at the meeting.(もしその電車に間に合っていたら、その会議に出席できただろうに。)「電車に間に合わない」時点と「会議に出席できなかった」時点は時間がずれていて、電車に乗ろうとした時が会議に出席しようとした時以前の話なのでif節には過去完了を使います。よって解答は(ア)です。

 

3.If I had not met her, my life (  )miserable.(もし彼女と会っていなかったならば、私の人生はみじめなものになっていただろう。)

(ア)would had been (イ)would have been (ウ)have been  (エ)wouldn’t have been

If I had not met her, my life (イ)would have been miserable.(もし彼女と会っていなかったならば、私の人生はみじめなものになっていただろう。)和訳に合わせると使用する助動詞はwouldとわかります。主節でnotを使う表現はないので、この時点で(ア)と(イ)に絞れます。そこでif節に注目すると過去完了形を用いていることがわかります。よって主節の表現はwouldと完了形を使っている(イ)が適切だとわかります。

 

4.If you had explained the problem clearly, we (   ) understood it.
(もしあなたがその問題をはっきり説明してくれていたら、私は理解できただろうに。)

(ア)can had(イ)will have(ウ)should have (エ)could have

If you had explained the problem clearly, we (エ)could have understood it.(もしあなたがその問題をはっきり説明してくれていたら、私は理解できただろうに。)主節は過去の話で、可能を示す助動詞はcouldなので(エ)が解答になります。

5.If he (   ) well, our team would not have lost the game.(もし彼がうまくプレーしていたら、チームは負けなかっただろうに。)

(ア)had played(イ)playing (ウ)have played (エ)haven’t play

If he(ア)had played well, our team would not have lost the game.(もし彼がうまくプレーしていたら、チームは負けなかっただろうに。)「彼がうまくプレー出来ていなかった」時点は「チームが負けた」時点より過去の話なので過去完了形を使います。また、if節にはnotを用いる必要がないので解答は(ア)になります。

 

6.If I had (   ), I would have changed my job.(もし若かったら、仕事を変えていただろうに。)
(ア)younger(イ)younged(ウ)be young (エ)been young

If I had(エ)been young , I would have changed my job.(もし若かったら、仕事を変えていただろうに。)主節では過去形の助動詞と完了形が使われているのでif節は過去完了形を使います。よって解答は(エ)になります。

 

7.If you(   )up early,  you wouldn’t have been late.(早起きしていたら、遅刻しなかっただろうに。)

(ア)could got(イ)had got(ウ)have got (エ)had get

If you(イ)had got up early, you wouldn’t have been late.(早起きしていたら、遅刻しなかっただろうに。)主節がwould+not+完了形を用いているのでif節は過去完了形を使います。よって解答は(イ)になります。

 

 

8.If I had had a lot of money, I (   ) married him.(もしたくさんお金があったなら、彼と結婚できただろうに。)

(ア)could had(イ)can have(ウ)can had (エ)could have

If I had had a lot of money, I(エ)could have married him.(もしたくさんお金があったなら、彼と結婚できただろうに。)if節が過去完了形を使っているので主節はcouldと完了形を用います。よって解答は(エ)となります。

 

仮定法過去完了まとめ

今回は英文法 仮定法過去完了について学びました。

 

仮定法過去と仮定法過去完了ともにどちらも現実とは違ってあり得ない話について述べていますが、仮定法過去は現在の話で、仮定法過去完了は過去のあり得ないお話でした。

 

公式のかたちはほとんど同じで過去形を過去完了形へ、助動詞過去形+動詞の原形を助動詞過去形+have+過去分詞に変えるだけですね。

 

仮定法過去と仮定法過去完了の違いというと分かりにくい印象でしたが、学んでみると難しくないことを感じていただけたのではないでしょうか。

 

より実践的に仮定法の問題を解きたい人は「【大学入試に出る英文法】仮定法の例文問題を集めました」を御覧ください。センター試験過去20年分にわたる仮定法の問題を集めています。ぜひ、ご利用ください。

スポンサーリンク
スポンサーリンク

にほんブログ村 受験ブログへ
にほんブログ村

にほんブログ村 受験ブログ 大学受験(本人・親)へ
にほんブログ村

コメント

");const o=ie?ie.createHTML(e):e;if(nt===tt)try{t=(new W).parseFromString(o,at)}catch(e){}if(!t||!t.documentElement){t=le.createDocument(nt,"template",null);try{t.documentElement.innerHTML=ot?ae:o}catch(e){}}const i=t.body||t.documentElement;return e&&n&&i.insertBefore(r.createTextNode(n),i.childNodes[0]||null),nt===tt?ue.call(t,Ie?"html":"body")[0]:Ie?t.documentElement:i},bt=function(e){return ce.call(e.ownerDocument||e,e,H.SHOW_ELEMENT|H.SHOW_COMMENT|H.SHOW_TEXT|H.SHOW_PROCESSING_INSTRUCTION|H.SHOW_CDATA_SECTION,null)},St=function(e){return e instanceof B&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof z)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},Rt=function(e){return"function"==typeof b&&e instanceof b},wt=function(e,t,n){pe[e]&&u(pe[e],(e=>{e.call(o,t,n,ut)}))},Ct=function(e){let t=null;if(wt("beforeSanitizeElements",e,null),St(e))return _t(e),!0;const n=st(e.nodeName);if(wt("uponSanitizeElement",e,{tagName:n,allowedTags:Ne}),e.hasChildNodes()&&!Rt(e.firstElementChild)&&_(/<[/\w]/g,e.innerHTML)&&_(/<[/\w]/g,e.textContent))return _t(e),!0;if(e.nodeType===J)return _t(e),!0;if(Me&&e.nodeType===Q&&_(/<[/\w]/g,e.data))return _t(e),!0;if(!Ne[n]||Ce[n]){if(!Ce[n]&&Dt(n)){if(we.tagNameCheck instanceof RegExp&&_(we.tagNameCheck,n))return!1;if(we.tagNameCheck instanceof Function&&we.tagNameCheck(n))return!1}if(Ye&&!qe[n]){const t=re(e)||e.parentNode,n=oe(e)||e.childNodes;if(n&&t){for(let o=n.length-1;o>=0;--o){const r=X(n[o],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,$(e))}}}return _t(e),!0}return e instanceof R&&!Et(e)?(_t(e),!0):"noscript"!==n&&"noembed"!==n&&"noframes"!==n||!_(/<\/no(script|embed|frames)/i,e.innerHTML)?(ke&&e.nodeType===Z&&(t=e.textContent,u([fe,de,he],(e=>{t=g(t,e," ")})),e.textContent!==t&&(p(o.removed,{element:e.cloneNode()}),e.textContent=t)),wt("afterSanitizeElements",e,null),!1):(_t(e),!0)},Lt=function(e,t,n){if(Be&&("id"===t||"name"===t)&&(n in r||n in mt))return!1;if(ve&&!Le[t]&&_(ge,t));else if(De&&_(Te,t));else if(!Se[t]||Le[t]){if(!(Dt(e)&&(we.tagNameCheck instanceof RegExp&&_(we.tagNameCheck,e)||we.tagNameCheck instanceof Function&&we.tagNameCheck(e))&&(we.attributeNameCheck instanceof RegExp&&_(we.attributeNameCheck,t)||we.attributeNameCheck instanceof Function&&we.attributeNameCheck(t))||"is"===t&&we.allowCustomizedBuiltInElements&&(we.tagNameCheck instanceof RegExp&&_(we.tagNameCheck,n)||we.tagNameCheck instanceof Function&&we.tagNameCheck(n))))return!1}else if(Ze[t]);else if(_(Ae,g(n,Ee,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==T(n,"data:")||!Ke[e]){if(Oe&&!_(ye,g(n,Ee,"")));else if(n)return!1}return!0},Dt=function(e){return"annotation-xml"!==e&&h(e,_e)},vt=function(e){wt("beforeSanitizeAttributes",e,null);const{attributes:t}=e;if(!t)return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Se};let r=t.length;for(;r--;){const i=t[r],{name:a,namespaceURI:l,value:c}=i,s=st(a);let p="value"===a?c:y(c);if(n.attrName=s,n.attrValue=p,n.keepAttr=!0,n.forceKeepAttr=void 0,wt("uponSanitizeAttribute",e,n),p=n.attrValue,n.forceKeepAttr)continue;if(At(a,e),!n.keepAttr)continue;if(!xe&&_(/\/>/i,p)){At(a,e);continue}if(Me&&_(/((--!?|])>)|<\/(style|title)/i,p)){At(a,e);continue}ke&&u([fe,de,he],(e=>{p=g(p,e," ")}));const f=st(e.nodeName);if(Lt(f,s,p)){if(!We||"id"!==s&&"name"!==s||(At(a,e),p=Ge+p),ie&&"object"==typeof G&&"function"==typeof G.getAttributeType)if(l);else switch(G.getAttributeType(f,s)){case"TrustedHTML":p=ie.createHTML(p);break;case"TrustedScriptURL":p=ie.createScriptURL(p)}try{l?e.setAttributeNS(l,a,p):e.setAttribute(a,p),St(e)?_t(e):m(o.removed)}catch(e){}}}wt("afterSanitizeAttributes",e,null)},Ot=function e(t){let n=null;const o=bt(t);for(wt("beforeSanitizeShadowDOM",t,null);n=o.nextNode();)wt("uponSanitizeShadowNode",n,null),Ct(n)||(n.content instanceof s&&e(n.content),vt(n));wt("afterSanitizeShadowDOM",t,null)};return o.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,r=null,i=null,l=null;if(ot=!e,ot&&(e="\x3c!--\x3e"),"string"!=typeof e&&!Rt(e)){if("function"!=typeof e.toString)throw A("toString is not a function");if("string"!=typeof(e=e.toString()))throw A("dirty is not a string, aborting")}if(!o.isSupported)return e;if(Ue||ft(t),o.removed=[],"string"==typeof e&&(je=!1),je){if(e.nodeName){const t=st(e.nodeName);if(!Ne[t]||Ce[t])throw A("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof b)n=Nt("\x3c!----\x3e"),r=n.ownerDocument.importNode(e,!0),r.nodeType===V&&"BODY"===r.nodeName||"HTML"===r.nodeName?n=r:n.appendChild(r);else{if(!Fe&&!ke&&!Ie&&-1===e.indexOf("<"))return ie&&ze?ie.createHTML(e):e;if(n=Nt(e),!n)return Fe?null:ze?ae:""}n&&Pe&&_t(n.firstChild);const c=bt(je?e:n);for(;i=c.nextNode();)Ct(i)||(i.content instanceof s&&Ot(i.content),vt(i));if(je)return e;if(Fe){if(He)for(l=se.call(n.ownerDocument);n.firstChild;)l.appendChild(n.firstChild);else l=n;return(Se.shadowroot||Se.shadowrootmode)&&(l=me.call(a,l,!0)),l}let m=Ie?n.outerHTML:n.innerHTML;return Ie&&Ne["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&_(q,n.ownerDocument.doctype.name)&&(m="\n"+m),ke&&u([fe,de,he],(e=>{m=g(m,e," ")})),ie&&ze?ie.createHTML(m):m},o.setConfig=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};ft(e),Ue=!0},o.clearConfig=function(){ut=null,Ue=!1},o.isValidAttribute=function(e,t,n){ut||ft({});const o=st(e),r=st(t);return Lt(o,r,n)},o.addHook=function(e,t){"function"==typeof t&&(pe[e]=pe[e]||[],p(pe[e],t))},o.removeHook=function(e){if(pe[e])return m(pe[e])},o.removeHooks=function(e){pe[e]&&(pe[e]=[])},o.removeAllHooks=function(){pe={}},o}();return oe}))
タイトルとURLをコピーしました