共用方式為


Application.AddSiteColumn 方法 (專案)

新增一個欄位,讓該活動專案的任務清單在同步的 SharePoint 網站上可用。

語法

表情AddSiteColumn (ProjectFieldSharePointName)

expression 代表 Application 物件的變數。

參數

名稱 必要/選用 資料類型 描述
專案現場 選用 PjField 可以是 PjField 列舉中常數子集之一,該列指定新欄位中要顯示的專案欄位;不可能是禁止領域之一 (詳見備註) 。
SharePointName 選用 Variant 新專欄的名字。

傳回值

布林值

如果欄位被加入,則為真

註解

AddSiteColumn 方法在以下情況下會產生執行時錯誤 1004,「應用程式定義或物件定義錯誤」:

  • 該活躍專案並未與同步的 SharePoint 任務清單相關聯。 如果專案是本地的,你可以使用 LinkToTaskList 方法建立同步的 SharePoint 任務清單。

  • 欄位名稱已經存在於 SharePoint 的任務清單中。 要查看欄位名稱清單,請在 SharePoint 開啟任務清單,然後在 LIST 標籤中選擇修改檢視設定>編輯檢視頁面顯示任務清單中所有可用的欄位名稱。

  • ProjectField 值為非任務欄位,例如 pjResourceActualCost。 SharePoint 任務清單顯示的是任務欄位,而非資源欄位。

  • ProjectField 值是企業自訂欄位,例如 pjTaskEnterpriseProjectText1,或是查詢表欄位,例如 pjTaskResourceEnterpriseRBS。 本地任務自訂欄位,例如 pjTaskText1,是有效的。

  • ProjectField 值是表 1 中禁止的欄位之一。 這些欄位是除了禁止的資源欄位和企業自訂欄位之外的。 這些欄位被禁止,因為它們與其他禁止欄位相關,或其值型別在預設的 SharePoint 任務清單中不被支援。

雖然下表中禁止的欄位看似冗長,但在 PjField 的 1,338 個常數中,有 357 個(包括本地任務自訂欄位)可搭配 AddSiteColumn 方法使用。

其他禁止領域

欄位 欄位 欄位
pjTaskActive pjTaskActualOvertimeWork pjTaskACWP
pjTaskAssignmentDelay pjTaskAssignment PeakUnits pjTaskAssignmentUnits
pjTaskBaseline[1-10]預算成本 pjTaskBaseline[1-10]預算工作 pjTaskBaseline[1-10]固定成本累積
pjTaskBaselineBudgetCost pj任務Baseline預算工作 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 專業版中建立專案,然後使用 LinkToTaskList 方法匯入任務清單。 透過功能區的 PROJECT 標籤上的 Set Baseline 指令,為活動中的專案設定基線,然後調整部分任務的持續時間。

AddDurationColumns 巨集 將任務長度與基線長度加入 SharePoint 任務清單中的可用欄位清單 (見圖 1) 。

注意事項

執行 AddDurationColumns 巨集後,必須將專案儲存在 Project 專業版中,以便將變更與 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 的任務清單。 在 LIST 標籤中,選擇 「修改檢視」 指令。 在設定 - 編輯檢視頁面,選擇 AddDurationColumns 巨集新增的基準時長欄位和目前時長欄位。 圖 1 顯示了包含兩個新欄位的任務清單。

圖 1: 將欄位加入同步的 SharePoint 任務清單

Adding fields to a synchronized tasks list

支援和意見反應

有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應