Project) (Application.AddSiteColumn 方法

新增一個欄,該欄可供使用中專案的同步處理 SharePoint 網站中的工作清單使用。

語法

運算式AddSiteColumn (ProjectFieldSharePointName)

expression 代表 Application 物件的變數。

參數

名稱 必要/選用 資料類型 描述
ProjectField 選用 PjField 可以是 PjField 列舉中常數子集的其中一個,其指定要在新欄中顯示的專案欄位;不得是禁止欄位之一 (請參閱 註解) 。
SharePointName 選用 Variant 新欄的名稱。

傳回值

布林值

如果已新增該欄,則為 True

註解

在下列情況下, AddSiteColumn 方法會提供執行階段錯誤 1004「應用程式定義或物件定義的錯誤」:

  • 使用中的專案未與同步處理的 SharePoint 工作清單相關聯。 如果專案是本機的,您可以使用 LinkToTaskList 方法來建立同步處理的 SharePoint 工作清單。

  • 欄名稱已存在於 SharePoint 工作清單中。 若要查看欄名稱的清單,請在 SharePoint 中開啟工作清單,然後選擇 [清單] 索引標籤上的 [修改檢視]。[設定>編輯檢視] 頁面會顯示工作清單可用的所有欄名稱。

  • ProjectField 值是非工作欄位,例如 pjResourceActualCost。 SharePoint 工作清單顯示工作欄位,而非資源欄位。

  • ProjectField 值是企業自訂欄位,例如 pjTaskEnterpriseProjectText1,或是查閱表格欄位,例如 pjTaskResourceEnterpriseRBS。 本機工作自訂欄位,例如 pjTaskText1 有效。

  • ProjectField 值是表 1 中禁止的欄位之一。 這些欄位是禁止資源欄位和企業自訂欄位之外的欄位。 這些欄位是因為其與其他禁止欄位相關,或具有預設 SharePoint 工作清單中不支援的值類型,因此遭禁止使用。

雖然下表中顯示的禁止欄位可能看起來很長,但在 PjField 中的 1,338 個常數中,有 357 個(包括本機工作自訂欄位)可以與 AddSiteColumn 方法一起使用。

其他禁止欄位

欄位 欄位 欄位
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 專業版中建立專案,然後使用 LinkToTaskList 方法來匯入工作清單。 使用功能區 [專案] 索引標籤上的 [設定比較基準] 命令來設定使用中專案的比較基準,然後變更某些工作的工期。

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 中的工作清單。 在 [清單 ] 索引標籤上,選取 [ 修改檢視 ] 命令。 在設定 - 編輯檢視頁面上,選取比較基準工期欄位和 AddDurationColumns 巨集新增的目前工期欄位。 圖 1 顯示包含兩個新欄位的工作清單。

圖 1: 將欄位新增至已同步處理的 SharePoint 工作清單

Adding fields to a synchronized tasks list

支援和意見反應

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