新增一個欄,該欄可供使用中專案的同步處理 SharePoint 網站中的工作清單使用。
語法
運算式。AddSiteColumn (ProjectField、 SharePointName)
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 工作清單
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。