How long have you been playing the violin?
(あなたはどのくらいヴァイオリンを弾いていますか。)
I have been playing the violin since I was a child.
(私はヴァイオリンを子供のときから弾いています。)
I have been studying English for six years. But I can't speak English.
(私は英語を6年間勉強しています。けれども英語を話すことができません。)
ここで、動作を表す動詞を進行形にする場合と、しない場合との意味の違いを見ていきます。
たとえば She has been reading a book.「彼女は本を読んでいました。」は、「何をしていましたか。」と聞かれたときの答えとして、進行形にした場合の例です。この意味は、聞かれたときに本を読んでいる最中ということになります。
しかし、She has read a book. のように進行形にしない場合(現在完了形)は、「彼女は本を読み終えました。」というように、「完了・結果」を表すことになります。
①I have baked the cake.と②I have been baking the cake.では、①は「ケーキを焼きました。」というように、「完了・結果」の意味になります。しかし、②は「ケーキを焼いていました。」という意味になります。それはちょうど焼き終えたところかもしれませんが、まだ焼いている最中かもしれません。
過去完了形とは、その名の通り現在完了形の過去形ということです。ある過去の時点における出来事の完了を表します。そして普通は、「when」や「before」などで過去の時点を示します。
たとえば、When I arrived at the airport, the plane had taken off.「私が空港に着いたときには、飛行機は離陸していました。」は、空港に着いた「ある過去の時点」において、飛行機はすでに離陸していたという意味です。