Application.AddSiteColumn 方法 (Project)
添加一个列,该列可用于活动项目的已同步 SharePoint 网站中的任务列表。
语法
表达式。AddSiteColumn (ProjectField、 SharePointName)
expression:表示 Application 对象的变量。
参数
名称 | 必需/可选 | 数据类型 | 说明 |
---|---|---|---|
ProjectField | 可选 | PjField | 可以是 PjField 枚举中的常量子集之一,它指定要在新列中显示的项目字段;不能是禁止的字段之一 (请参阅备注) 。 |
SharePointName | 可选 | Variant | 新列的名称。 |
返回值
Boolean
如果添加了列,则为 True。
备注
在以下情况下, AddSiteColumn 方法提供运行时错误 1004“应用程序定义或对象定义的错误”:
活动项目不与同步的 SharePoint 任务列表相关联。 如果项目是本地项目,则可以使用 LinkToTaskList 方法创建同步的 SharePoint 任务列表。
列名称已存在于 SharePoint 任务列表中。 若要查看列名列表,请在 SharePoint 中打开任务列表,然后在“列表”选项卡上选择“修改视图”。“设置编辑视图”>页显示可用于任务列表的所有列名称。
ProjectField 值是非任务域,例如 pjResourceActualCost。 SharePoint 任务列表显示任务域,而不是资源字段。
ProjectField 值是企业自定义字段(如 pjTaskEnterpriseProjectText1)或查阅表字段(如 pjTaskResourceEnterpriseRBS)。 本地任务自定义域(如 pjTaskText1)有效。
ProjectField 值是表 1 中的禁止字段之一。 这些字段是禁止的资源字段和企业自定义字段的补充。 禁止这些字段,因为它们与其他禁止的字段相关,或者具有默认 SharePoint 任务列表中不支持的值类型。
尽管下表中显示的禁止字段可能是 PjField 中的 1,338 个常量中的长列表,但有 357 个(包括本地任务自定义域)可与 AddSiteColumn 方法一起使用。
其他禁止字段
Field | Field | Field |
---|---|---|
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 显示了包含两个新字段的任务列表。
图 1. 将字段添加到同步的 SharePoint 任务列表
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。