アプリケーション オブジェクト (Project)

Project アプリケーション全体を表します。 Application オブジェクトには次のものが含まれます。

  • アプリケーション全体にわたる設定およびオプション ([ツール] メニューの [オプション] ダイアログ ボックスのオプションなど)。

  • 最上位レベルのオブジェクトを取得するプロパティ (ActiveCellActiveProject など)。

  • アプリケーション全体にわたる要素で操作を実行するメソッド (表示、選択、編集操作など)。

Application オブジェクトの使い方

Application プロパティを使用して、Project で Application オブジェクトを返します。 次の使用例では、Windows プロパティを Application オブジェクトに適用します。

Application.Windows("Project1.mpp").Activate

別のアプリケーションから Project を使用する: 遅延バインド

次の使用例は、実行時に Microsoft Project の Application オブジェクトを作成し、新しいプロジェクトの作成、タスクの追加、プロジェクトの保存を行った後、Project を閉じます。 たとえば、 CreateProject_Late マクロをコピーして、Word の Visual Basic エディター (VBE) の ThisDocument モジュールに貼り付けます。

注:

アプリケーションは実行時にのみ MSProject.Application タイプ ライブラリにクエリを実行するため、Microsoft IntelliSense は使用できません。また、遅延バインディングではパフォーマンスが比較的低下します。 JavaScript や VBScript などのスクリプト言語では、遅延バインディングが必要です。 VBScript では、汎用の Object データ型と Variant データ型のみがサポートされています。 VBA やその他のコンパイル済み言語のパフォーマンスを向上させるには、Project タイプ ライブラリへの参照を設定して、早期バインディングを使用する必要があります。

Sub CreateProject_Late() 
    Dim pjApp As Object 
    Set pjApp = CreateObject("MSProject.Application") 
    pjApp.Visible = True 
    pjApp.FileNew 
    pjApp.ActiveProject.Tasks.Add "Hang clocks" 
    pjApp.FileSaveAs "Clocks.mpp" 
    pjApp.FileClose 
    pjApp.Quit 
End Sub

Visible プロパティを True に設定しない場合、Project アプリケーションは表示されずにバックグラウンドで動作します。

別のアプリケーションから Project を使用する: 事前バインド

事前バインドは設計時にタイプ ライブラリを読み込むため、パフォーマンスは高くなります。 事前バインドを使用するには、作業中のアプリケーションから Project アプリケーションへの参照を設定する必要があります。 たとえば、Word 文書の VBE で、[ツール] メニューの [参照] をクリックし、[使用可能な参照] リストをスクロールして、[Microsoft Project 15.0 オブジェクト ライブラリ] チェック ボックスをオンにします。

次の例では、Excel などの別のアプリケーションからプロジェクトを開き、タスクを追加し、プロジェクトを保存して閉じます。

Sub ModifyProject_Early() 
    Dim pjApp As MSProject.Application 
    Set pjApp = New MSProject.Application 
    pjApp.Visible = True 
    pjApp.FileOpen "Clocks.mpp" 
    pjApp.ActiveProject.Tasks.Add "Wind clocks" 
    pjApp.FileSave 
    pjApp.FileClose 
    pjApp.Quit 
End Sub

注釈

重要

アプリケーション レベルのイベントの場合は、 を設定Application.Visible = Trueした後でイベント ハンドラーを登録します。

Application オブジェクトの Visible プロパティを True に設定する前に、別のアプリケーションから Project をインスタンス化して、アプリケーション レベルのイベントを登録すると、Application オブジェクトの子オブジェクトのプロパティとメソッドが機能しません。 たとえば、Application.ActiveProject.Name にはアクセスできません。

ActiveProject プロパティで表されるアクティブなプロジェクトなど、最も一般的なユーザー インターフェイス オブジェクトを返すプロパティとメソッドの多くは、Application オブジェクト修飾子なしで使用できます。 たとえば、書き込む Application.ActiveProject.Visible = True 代わりに、 ActiveProject.Visible = True

イベント

メソッド

名前

プロパティ

名前

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。