暗記すべき英文

(1)私はちょうど宿題を終えたところだ。
I have just finished my homework.

(2)私は時計をなくしてしまった。
I have lost my watch.

(3)あなたはもうその本をよみましたか。いいえ、まだ読んでいません。
Have you read the book yet? No, I haven't read it yet.

(4)あなたはどれくらいの期間、大阪に住んでいますか。私は3年間ここに住んでいます。
How long have you lived in Osaka? I have lived here for three years.

(5)あなたは今までに東京へ行ったことがありますか。はい。私は3回行ったことがあります。
Have you ever been to Tokyo? Yes. I have been there three times.


現在完了形

今現在の状況を述べる英文は現在形です。また、過去の動作や状態を述べる英文は過去形です。
過去にした行為や状態が現在までつながっていることを述べる英文が現在完了形です。

現在完了形は、主語+have(has)+過去分詞+〜の形になります。
He has had lunch.(彼は昼食を食べたところだ。)

疑問文は、have(has)を文頭に出します。
Has he had lunch?(彼は昼食を食べたところですか。)

否定文は、主語+have(has)+not+過去分詞+〜の語順になります。
He has not had lunch.(彼は昼食をまだ食べていない。)

過去から現在までの、つながっている行為や状態を表す場合として、
(1)ある行為や状態が終わったことが今・現在に影響を与えているとき・・・「〜したところだ」「〜してしまった」(完了結果)、
(2)過去に始めた行為、始まった状態が今・現在まで続いているとき・・・「ずっと〜している」(継続)、
(3)ある行為をしたということが今・現在の自分の経験になっているとき・・・「〜したことがある」(経験)、
の3つがあります。


完了「〜したところだ」・結果「〜してしまった」

just(ちょうど), already(もう、すでに), yet((疑問文で)もう、(否定文で)まだ)などの副詞をともなうことが多い。

完了

He has just come home.(彼はちょうど帰宅したところだ。)
She has already eaten dinner.(彼女はもう夕食を食べたところだ。)
Have you finished your homework yet?(あなたはもう宿題を終えたか。)
I haven't my homework yet.(私はまだ宿題を終えていない。)

結果

I have lost my watch.(私は時計をなくしてしまった(今、時計はない)。)
He has gone to America.(彼はアメリカに行ってしまった(今、ここにはいない)。)


継続「ずっと〜している」

since(〜から), for(〜の間), How long(どれくらいの期間)などの語をともなうことが多い。

She has been sick in bed since last week.(彼女は先週からずっと病気で寝ている。)
How long have you lived in this town?(あなたはこの町にどれくらいの間住んでいますか。)
I have lived here for ten years.(私はここに10年間住んでいます。)

英語独特の表現

「死んだ」という表現を英語では現在完了形で表すことがあります。
He died three years ago.(彼は3年前に亡くなった。)
=He has been dead for three years.(彼は3年間死んだという状態である。)
=Three years have passed since he died.(彼が死んでから3年たった。)


経験「〜したことがある」

before(以前に), once(一度), twice(二度), three times(三度), ever(今までに), never(今まで一度もない)などの語をともなうことが多い。

I have seen him before.(私は以前彼に会ったことがある。)
How many times have you been to America?(あなたは何度アメリカに行ったことがありますか。)
I have been there four times.(私は四度アメリカに行ったことがあります。)
Have you ever read the book?(その本を今までに読んだことがありますか。)
I have never read such an interesting story.(私はこんなおもしろい話を今までに読んだことがない。)


現在完了形と過去形

現在完了形は、過去の行為や状態が現在までつながっていることを示す表現なので、はっきりと過去に限定する語とは一緒に使えません。

はっきりと過去に限定する語・・・yesterday, last 〜, 〜ago, When
これらの語があるときは、過去形を使います。

×I have studied English two years ago.
I studied English two years ago.(私は2年前に英語を勉強した。)

ただし、sinceがあれば、「過去のある時点から」という意味になり、現在完了形と一緒に使えるようになります。

I have studied English since two years ago.(私は2年前から英語を勉強しています。)

追記(2011.6.23):
現在完了形の継続用法の例として、
I have studied English since two years ago.
をあげていますが、「
since two years ago」は誤った文だそうです。
参考:
http://blog.livedoor.jp/veritedesu/archives/1847357.html


have been to〜とhave gone to〜

経験完了のときhave been to結果を表すときにhave gone toを使います。

I have been to America before.(私は以前アメリカに行ったことがある(今はここにいる)。・・・経験)
I have just been to the shop.(私はちょうどその店に行ってきたところだ(今はここにいる)。・・・完了)

He has gone to America.(彼はアメリカに行ってしまった(今、ここにはいない)。・・・結果)


still(まだ)と現在完了形

副詞のstill(まだ)が文中にあるとき、過去の行為・状態が「まだ」今も続いているという意味から、現在完了形に書き換えられることが多い。

She went to Canada two years ago, and she is still there now.(彼女は2年前カナダに行って、まだそこにいる。)
=She has been in Canada for two years.(彼女は2年間ずっとカナダにいる。)

I was sick last Monday, and I am still sick now.(私は先週の月曜日に病気だった、まだ今も病気だ。)
=I have been sick since last Monday.(私は先週の月曜日からずっと病気だ。)