現在完了進行形って、わかりやすくって意識してもとっても難しくて、説明にも曖昧な点とか矛盾をはらんでます。なのでわかんなかったらツッコミ入れてください。
現在完了形は、現在形をベースに完了形にしたもので
現在完了進行形は、現在進行形をベースに、完了形にしたものです。
だから現在形と現在進行形の違いがわかれば、
この2つの違いもわかると思います。
①現在形は状態や属性を表す/現在進行形は動作や行為を表す
現在形は、「現在のこと」というよりは、
いつでも成り立つようなこととか
繰り返し行なっていること、という方が近くて、
主語の状態/属性とか職業とかを表すのに使います。
例えばHe teaches English. っていう現在形の文は、いまとかいつとかっていうより、教えるという動作を繰り返している、という意味になります。
そこから属性とか職業を表す用法で使われて、言い換えるならばHe is an English teacherってことになるんです。
それに対して現在進行形は、
「継続中の動作や行為」を表します。
He is teaching his students English in the classroom
は「いま英語を教室で教えている真っ最中」ってことなよで、is teachingは今行っている動作を表しています。
この違いは完了形と完了進行形でも同じなんです。
質問者さんの画像の説明もこのことを言っています。
a)He has worked for the company for 30 years
b)He has been working outside for 3 hours
b)は現在完了進行形なので、進行形をベースに完了形にしたものです。つまり「外で働いている真っ最中」というのが3時間続いているということです。
workという動作をしているのが継続している。
a)は現在完了形です。現在形をベースに完了にしている。
現在形の場合はHe works outside(彼は[普段]外で働いている)という意味になります。
内勤じゃなくて外勤の人、オフィスじゃなくて現場仕事のひと、みたいな感じです。
そしてこれを完了形にすると、そういう属性を30年間続けた、ということになります。
だから
30年間眠らずにworkという動作を続けた
っていう人間には不可能なことを言ってるんじゃなくて、
オフィスの中じゃなくて外勤の立場で30年間いた、現場仕事が好きで、ベテランになってもオフィスで働いて管理職に昇進したりとかしなかったんだね、みたいなことを言ってます。
①と③の説明が矛盾しているような感じで、過去のここでの質問を振り返ってもここがうまく説明できないんだよなーと思ったんですが、
書いてから思ったのは
現在完了進行形は
現在進行形に完了のニュアンスを加えたもの→①
現在完了形にある進行のニュアンスを加えたもの→③
の2つの意味合いがある、と思えば
感覚的にスッと入る気がしました。
②状態動詞は進行形にしない
例えばhaveは「持つ」ではなく「持っている」という意味です。
持ってないものを持つ という動作ではなくて
持っているという状態を表すんですね。こういう動詞をややこしい名前ですが「状態動詞」と言います。
こういう動詞は基本的に進行形にしません。なぜかというと、始まりと終わりがある動作じゃないから、ずっと継続するのが当たり前だからです。
これは完了形と完了進行形でもそうで、状態動詞は完了進行形には基本的にしません。
③完了進行形はこれからも続くと思われることを表す。
a)He has worked for the company for 30 years
c)He has been working for the company for 30 years
①の説明と矛盾するようですが、c) の文は「彼は30年間、外で(眠らずに体を動かして)働き続けている」という意味にはなりません。そのように理解することは文法上可能ですが、現実的にあり得ないと誰でもわかるので、そう受け取る人はいないと思います。
a)とc)の違いは、
a)は 30年間が外勤の立場で働いてきた というだけ
c)は 30年間外勤してきて、今後もそれが続くだろう
という感じです。
他の方もおっしゃるように
現在(完了)進行形は「継続的な動作」
現在(完了)形は「断続的な(繰り返し行う)動作」
で、そこから①で説明したような違いがうまれます。
そうするとこのcの文は矛盾を感じるのですが、進行形でいう「継続」というのは、「今まさに行っている」はもちろんですが、「大きな視点で見て継続している」でも構わないんです。
ある解説書の現在進行形の説明で
友達と電話中に『(最近)小説読んでるんだよねー』っていう会話のときに現在進行形でI'm reading a novelって言って問題ない。実際には「いま」は「電話で会話中」であったとしても、って書いてました。
つまり話し手の中で「終わってない(=継続中)」という意識があれば、「まさにそれを今やってる」ってことでなくても進行形にしていいってことだと思います。
c) の完了進行形の文も、進行形のそういう面を反映していると思います。c)の文は30年間続けてきて、そしてまだ終わってなくて続いている、ということです。
それに対して進行形抜きの現在完了形の場合は、
一つ一つの行為が始まって、一定期間続いて、完了する
という一連の流れを長いことやってきた、という感じになります。だからa)の文は、30年間、1日1日か1年ごとかわからないけど、都度都度区切りをつけながら働いてきた、ということを言っていて、これから先のことには言及していないということになります。