英語の現在完了形の意味というと、一般的には次の3つです。
①(状態の)継続:「ずっと~である」
②完了:「もう~してしまった」
③経験:「~したことがある」
初学者がこれを見ると、①はともかく、②と③の訳に「してしまった」・「したことが」とあるので、現在完了形は過去形と同じく、過去のことを表すのだと思いがちです。そして、のちに「現在完了形は過去を表す副詞と共に使うことはできない」ということを教えられたときに、混乱してしまいます。
しかし、現在完了形の根本的な意味をしっかりと学んでおけば、そのようなことに悩む必要はないのです。
「現在」完了形の立場はあくまでも現在
現在完了形は、現在のことを、過去のことと関連付けて表す形なのです。そのことを頭に置いて、先ほどの3つの用法を改めてチェックしていきましょう。
(状態の)継続
I have lived in America for three years.
私は3年間ずっとアメリカに住んでいる。
現在の状態が過去のある時点からずっと続いているということを表します。上の例文は、「私は今アメリカに住んでいるが、それは3年前からずっとのことだ。」という意味です。
完了
I have already finished my homework.
私はもう宿題をやり終えた。
現在には既にあることが終わってしまっているということを表します。大切なのは、過去形とは違い、あくまで視点は現在に置かれている、ということです。
上の例文を、過去形を使った下の文と比べてみましょう。
I finished my homework yesterday.
私は昨日宿題をやった。
この文は、「昨日宿題をやった」という過去の出来事をただ述べているだけです。それに対して、上の文は、「もう宿題は終わってるから、やるべき宿題は残っていない」という、今の状況を表しているのです。仮に、上の文でも宿題をやったのが昨日であったとしても、下の文とはニュアンスが違います。
経験
I have visited Tokyo twice.
私はロンドンを2度訪れたことがある。
現在にいたるまでの経験を表します。上の例文では、実際にロンドンを訪れたという事実は過去に起きた出来事ですが、この文が表すのは、今の時点でロンドン訪問の経験回数が2回だ、ということです。
過去を表す副詞と共に使うことができない理由
ここまで説明されれば、現在完了形を、過去を表す副詞と一緒に使うことができない理由は、すぐにわかるはずです。
現在完了形の立場は、その名の通り、あくまでも現在だからです。訳し方によっては、現在完了形は過去のことを表していて、「昨日」や「先週」というフレーズを入れても違和感がないように思えますが、日本語訳に振り回されてはいけないのです。