基本的に、be doingはある動作や状態が現在も続いている「継続中」である事を示すのに対し、have been doingは過去のある時点から現在まである動作や状態が「継続していた」事を示します。
例文(待ち合わせ場所に遅れて来たAとAをずっと待っていたBのやりとり)
A:Why are you angry?
なんで怒ってんの?
B:Because I have been waiting for you for a long time!
長時間待たされてたからだよ!(来るのが遅いからだよ!)
上の例文はBが過去のある時点から「現在」までの長い時間Aを待っていた事を示し、その動作/状態がAが待ち合わせ場所に来た事で終了「完了」した事を意味します。
これをBecause I’m waiting for you for a long timeとすると、今も待っている状態が「継続中」という事になってしまうので、have been waitingと置き換える事は出来ません。
また、Because I had been waiting for you for a long timeとすると「過去のある時点から過去のある時点までの長い時間待っていたからだ」となってしまうので、「今現在」怒っている理由にはならなず、上記のような例文ではhad been doingを使うのは間違いです。
ではBecause I was waiting for you for a long timeはどうなのかと言うと、ニュアンスは若干変わりますがhave been waitingとの置き換えは可能です。
ただ、いつのどの時点からどの時点まで待っていたのか文章だけでは分からないので基本的には駄目ですが、口語では状況や文脈から相手に伝われば良いという風潮なので間違いにはならないと思います。※テストなどでは✕になると思います
他にも例えば、息切れして休んでいる人に「どうして息切れしているんですか?」と尋ねた時に、Because I have been running「走っていたからです」という返事が返って来たとします。
これはある過去の時点から現在まで「走る」という動作を継続して行っており、その結果「今現在」息切れして休んでいるという事を示しています。
これをBecause I’m runningとすると「今も走っている」となるので駄目です。
Because I had been runningも過去のある時点から過去のある時点まで「走っていた」事になり、「今現在」息切れしている理由にはならないので駄目です。
Because I was runnningは先ほどのケースと同じで置き換えは可能です。
関連記事
英語で「やっても損はない」と言いたい場合はit doesn’t hurt/harm to doやthere is no loss in~やlose nothing by~などと言うと良いという話
英語で「分かった/了解した」と言いたい場合はgot itまたはunderstoodまたはcopy thatと言うと良いという話
英語で服や靴などを「(上下左右裏表)間違って着る/履く」などと言いたい場合はwear~wrongと言うと良いという話
英会話習得サポートサービス
私と友達になって英語でメッセージのやり取りをしながら英語力を高めてみませんか?
日本語で分からないところを質問出来るので初心者の方も安心して始められますよ!
興味のある方は下記のリンクをクリックして詳細を確認してください※当ブログのトップページからも確認出来ます!