要获取字段的自定义名称,您需要字段常量并循环遍历所有字段,您需要存储所有字段常量的列表 https://msdn.microsoft.com/en-us/library/office/ff867782.aspx.
这是一个帮助您入门的简单示例。我对任务 Text1-30 字段的字段常量数组进行了硬编码。
Sub GetCustomFieldNames()
Dim TextFields As Variant
TextFields = Array(188743731, 188743734, 188743737, 188743740, 188743743 _
, 188743746, 188743747, 188743748, 188743749, 188743750, 188743997, 188743998 _
, 188743999, 188744000, 188744001, 188744002, 188744003, 188744004, 188744005 _
, 188744006, 188744007, 188744008, 188744009, 188744010, 188744011, 188744012 _
, 188744013, 188744014, 188744015, 188744016)
Dim FldID As Variant
For Each FldID In TextFields
If Len(CustomFieldGetName(FldID)) > 0 Then
Debug.Print FieldConstantToFieldName(FldID), CustomFieldGetName(FldID)
End If
Next FldID
End Sub
以下是一些改进方法:
- 将数值替换为枚举常量(例如 pjTaskText1)
- 将字段列表存储在外部文件中(例如包含字段名称、字段常量等的 csv 文件)
- 如果您的宏存储在仅宏项目文件中,您可以将字段存储在资源表中,并通过循环访问资源来循环访问它们(请参见屏幕截图)。