Project) (Application.AddSiteColumn 方法

添加可用于活动项目的同步 SharePoint 网站中的任务列表的列。

语法

表达式AddSiteColumn (ProjectFieldSharePointName)

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 中的任务列表。 在 “列表 ”(LIST) 选项卡上,选择 “修改视图”(Modify View ) 命令。 在“设置 - 编辑视图”页上,选择“基线持续时间”字段和 AddDurationColumns 宏添加的当前持续时间字段。 图 1 显示了带有两个新字段的任务列表。

图 1. 将字段添加到同步的 SharePoint 任务列表

将域添加到同步的任务列表

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。