5   現在完了時制と現在完了進行時制

5.1 現在完了時制

現在完了時制は、have/has + 過去分詞 で表されます。

肯定文では、主語が3人称単数現在なら has + 過去分詞、それ以外なら have + 過去分詞 が主語の後に続きます。

The bunker barge has arrived.   バンカーバージが到着しました。
We have started reducing speed. 我々は減速を開始しました。

疑問文では Have/Has + 主語 + 過去分詞? の形をとります。

Has the bunker barge arrived?  バンカーバージは到着しましたか?
Have you started reducing speed? あなたは減速を開始しましたか?

否定文では、主語のあとに have/has not + 過去分詞 が続きます。
The bunker barge (has not/hasn't) arrived.  バンカーバージは到着していません。
We (have not/haven't) started reducing speed. 我々はまだ減速を開始していません。

現在完了時制の文を作るには、動詞の過去分詞を知らなければなりませ ん。
これに自信のない方は、次のページを参照してくください。

規則動詞の過去・過去分詞の作り方はこちら
不規則動詞の活用はこちら

現在完了と過去

現在完了はその名の通り「現在何かが完了し ていること:完了用法」に加え、「何らかの状態が現在まで続いていること:継続用法」「過去の経験が現在残っていること:経験用法」をあらわします。「現在完了今のこと」と覚えましょう。

完了:We have already started the #1 generator.  すでに1号発電機を始動しました。
継続:I have known him for 3 years.  彼を3年間知っています。
経験:I have exchanged an exhaust valve before. 以前に排気弁を交換したことがあります。

青で示した already, for 3 years, before などの語句が加わると、完了、継続、経験のうちのどれを意味しているのかがより明確になります。

次に、現在完了時制が、過去時制とどう違うのか、以下の例で見てみましょう。

The pilot boat has arrived. パイロットボートが到着しました。
The pilot boat arrived at 0910. パイロットボートは9時10分に到着しました。

現在完了を使うと「今ついたところ」となり、発話の時点でパイロットボートは必ず本船の近くにいます。これに対し、過去形を使った場合には、過去のある時点、すなわち「9時10分に」ついたことに焦点が置かれることになります。ボートが到着したのは、10分前でも、1週間前でも、1年前でもかまわないし、今パ イロットボートが本船の近くにいてもいなくてもかまいません。

現在完了と共に使われる副詞

現在完了といっしょに使われる以下の副詞を覚えましょう。

just       ちょうど~したところだ
already   もう/すでに~した
yet        疑問文で:もう/すでに~しましたか? 否定文で:まだ~していない
never
      一度も~したことがない
before       以前に、これまでに
ever          疑問文で:これまでに一度でも~したことがありますか?

以下の例文で、それぞれの副詞の場所を確認してください。 just, already, never, ever などは have と過去分詞の間、yet や before は文の最後で使われます。(* already は The pilot boat has arrived already. のように文の最後に来ることもあります。)

The pilot boat has just arrived.  パイロットボートがちょうど到着しました。
 *アメリカ英語では just を過去時制で使って、「ちょうど~したところ」を表すことがあります。
The pilot boat has already arrived. もうパイロットボートは到着しています。
Has the pilot boat arrived yet? パイロットボートはもう到着し ましたか?
The pilot boat hasn't arrived yet. パイロットボートはまだ 到着していません。
Have you sailed on an LNG carrier before? 以前に LNG船に乗ったことがありますか?
I have never sailed on an LNG carrier. LNG船に乗ったことは1度もありません。
Have you ever visited 5 ports in 3 days?  一度でも3日で5港に寄港したことがありますか?

already と yet

already は肯定文で使い、「すでに/もう~した」と完了を、yet は疑問文で使われると「すでに/もう~しましたか?」、否定文では、not と一緒に使われて、「まだ~していない」を表します。疑問文で already を使うことがないわけではありませんが、「予想に反してもう~してしまったの」というニュアンスが出ます。純粋に、ある動作がすでに完了しているかどうかを尋ねたい場合には、yet を使いましょう。

Has the pilot boat arrived yet?     パイロットボート、ついた? (予定時間なんだけど、着いた?)
Has the pilot boat already arrived? もうパイロットボートついちゃったの? (30分も予定より早いじゃん!)
The pilot boat has not arrived yet.  パイロットボートはまだ到着していません。

「まだ~していない」と yet を使って言う場合には、not を忘れないようにしましょう


5.2  現在完了進行時制

現在完了進行時制have/has + been + 動詞の -ing形(現在分詞)で表され、動作が現在まで継続していることを表します。have と has の使い分けは、現在完了時制の場合と同じで、主語が3人称単数なら has, それ以外なら have になります。疑問文では、have/has が主語の前に出て、否定文では have/has の後に not が入ります。疑問文、否定文の作り方は、現在完了時制の場合と同じ、ということです。

以下の例文を参考にしてください。

We have been running the oily water separator [since 10 o'clock/for 2 hours].
我々は[10時から/2時間]ずっと油水分離機を動かしています。
How long has steam been leaking?
蒸気はどれぐらいの間漏れているのですか?
Steam has not been leaking for a long time.
蒸気は長い間漏れ続けてはいない。

現在完了進行時制は、上記の例文のように、「~からずっと」を表す since、「~の間」と期間を表す for、疑問詞の how long といっしょに使われることが多いので、使えるようにしましょう。

現在完了進行形と現在進行形の違い

We are running the oily water separator [now/right now].
We have been running the oily water separator [since 10 o'clock/for 2 hours].

現在進行形は、あくまでも今の時点で、動作が進行していることを表し、現在完了進行形は、過去のある時点から現在までずっと、ある動作が進行していることを 表します。