Application.AddSiteColumn メソッド (Project)

アクティブなプロジェクトの同期済み SharePoint サイトのタスク リストで使用可能になる列を追加します。

構文

AddSiteColumn (ProjectFieldSharePointName)

expressionApplication オブジェクトを 表す変数。

パラメーター

名前 必須 / オプション データ型 説明
ProjectField 省略可能 PjField 新しい列に表示するプロジェクト フィールドを指定する PjField 列挙型の定数のサブセットの 1 つにすることができます。禁止フィールドの 1 つにすることはできません (「解説」を参照)。
SharePointName 省略可能 バリアント型 (Variant) 新しい列の名前。

戻り値

ブール型 (Boolean)

列が追加される場合は true

注釈

以下の場合、 AddSiteColumn メソッドにより実行時エラー 1004、「アプリケーション定義またはオブジェクト定義のエラー」が発生します。

  • アクティブなプロジェクトは、同期された SharePoint タスク リストに関連付けられていません。 プロジェクトがローカルの場合は、 LinkToTaskList メソッドを使用して同期された SharePoint タスク リストを作成できます。

  • 列名は SharePoint タスク リストに既に存在します。 列名の一覧を表示するには、SharePoint でタスク リストを開き、[リスト] タブの [ビューの変更] を選択します。[設定] > [ビューの編集] ページには、タスク リストで使用できるすべての列名が表示されます。

  • ProjectField の値が、pjResourceActualCost などの非タスク フィールドである。 SharePoint タスク リストには、リソース フィールドではなくタスク フィールドが表示されます。

  • ProjectField 値は、pjTaskEnterpriseProjectText1 などのエンタープライズ カスタム フィールド、またはルックアップ テーブル フィールド (pjTaskResourceEnterpriseRBS) です。 pjTaskText1 などのローカル タスクのカスタム フィールドは有効です。

  • ProjectField 値は、表 1 で禁止されているフィールドの 1 つです。 これらのフィールドは、禁止されたリソース フィールドとエンタープライズ カスタム フィールドに追加されます。 これらのフィールドは、他の禁止フィールドに関連しているか、既定の SharePoint タスク リストでサポートされていない値の種類を持つため、禁止されています。

次の表に示す禁止フィールドは長いリストのように見えますが、 PjField の 1,338 個の定数のうち、 AddSiteColumn メソッドで使用できる定数は 357 個あります (ローカル タスクのカスタム フィールドを含めます)。

追加の禁止フィールド

フィールド フィールド フィールド
pjTaskActive pjTaskActualOvertimeWork pjTaskACWP
pjTaskAssignmentDelay pjTaskAssignmentPeakUnits pjTaskAssignmentUnits
pjTaskBaseline[1-10]BudgetCost pjTaskBaseline[1-10]BudgetWork pjTaskBaseline[1-10]FixedCostAccrual
pjTaskBaselineBudgetCost pjTaskBaselineBudgetWork pjTaskBaselineFixedCostAccrual
pjTaskBudgetCost pjTaskBudgetWork pjTaskCalendarGuid
pjTaskConstraintDate pjTaskConstraintType pjTaskCostRateTable
pjTaskDeliverableGuid pjTaskDeliverableType pjTaskDemandedRequested
pjTaskEarnedValueMethod pjTaskEnterpriseOutlineCode[1-30] pjTaskExternalTask
pjTaskFinishSlack pjTaskFixedCostAccrual pjTaskFreeSlack
pjTaskGuid pjTaskHideBar pjTaskHyperlink
pjTaskHyperlinkAddress pjTaskHyperlinkHref pjTaskHyperlinkScreenTip
pjTaskHyperlinkSubAddress pjTaskID pjTaskIgnoreWarnings
pjTaskIndicators pjTaskIsAssignment pjTaskLevelAssignments
pjTaskLevelDelay pjTaskLinkedFields pjTaskManual
pjTaskMilestone pjTaskNotes pjTaskObjects
pjTaskOutlineCode[1-10] pjTaskOutlineLevel pjTaskOutlineNumber
pjTaskPathDrivenSuccessor pjTaskPathDrivingPredecessor pjTaskPathPredecessor
pjTaskPathSuccessor pjTaskPreleveledFinish pjTaskPreleveledStart
pjTaskPriority pjTaskResourceType pjTaskStartSlack
pjTaskStatus pjTaskStatusIndicator pjTaskSubproject
pjTaskSubprojectReadOnly pjTaskTotalSlack pjTaskType
pjTaskWarning pjTaskWorkContour

SharePointName パラメーターに一意の名前を指定すれば、タスク リストに既に存在するフィールドを追加できます。ただし、その価値については疑問があります。

AddDurationColumns マクロを使用するには、SharePoint サイトでタスク リストを作成し、Project Professional でプロジェクトを作成してから、LinkToTaskList メソッドを使用してタスク リストをインポートします。 リボンの [プロジェクト] タブの [ベースラインの設定] を使用してアクティブなプロジェクトのベースラインを設定し、一部のタスクの期間を変更します。

AddDurationColumns マクロは、SharePoint タスク リスト内の利用可能な列の一覧に、タスク期間とベースライン期間を追加します (図 1 を参照)。

注:

AddDurationColumns マクロを実行した後、Project Professional でプロジェクトを保存して、変更を SharePoint タスク リストと同期する必要があります。

Sub AddDurationColumns()
    Dim success As Boolean
    Dim results As String
    Dim columnName As String
    Dim fieldName As PjField
    results = ""
    
    ' Add the first column.
    fieldName = pjTaskBaselineDurationText
    columnName = "Baseline duration"
    
    ' If the field name exists in the SharePoint tasks list, or fieldName
    ' is one of the prohibited fields, the AddSiteColumn method
    ' returns error 1100.
    On Error Resume Next
    
    success = AddSiteColumn(fieldName, columnName)
    
    If success Then
        results = "Added site column: " & columnName
    Else
        results = "Error in AddSiteColumn: " & columnName
    End If
    
    ' Add the second column.
    fieldName = pjTaskDurationText
    columnName = "Current duration"
    
    success = AddSiteColumn(fieldName, columnName)
    
    If success Then
        results = results & vbCrLf & "Added site column: " & columnName
    Else
        results = results & vbCrLf & "Error in AddSiteColumn: " & columnName
    End If
    
    Debug.Print results
End Sub

プロジェクトを保存したら、SharePoint のタスク リストに移動します。 [リスト] タブの [ビューの変更] コマンドを選択します。 [設定 - ビューの編集] ページで、AddDurationColumns マクロによって追加された [ベースライン期間] フィールドと [現在の期間] フィールドを選択します。 図 1 は、2 つの新しいフィールドを含むタスク リストを示しています。

図 1. 同期された SharePoint タスク リストへのフィールドの追加

同期されたタスク リストへのフィールドの追加

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

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