Application.AddSiteColumn メソッド (Project)

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

構文

式。AddSiteColumn (ProjectField、 SharePointName)

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 のサポートおよびフィードバックを参照してください。