Эта ссылка полезна тем, что показывает свойства и методы, доступные вам через объектную модель MS Project. Вы должны иметь возможность изменить его в формат VBA, слегка изменив его.
Что было бы более полезным, так это показать код, который вы упомянули в ...
Я нашел код, который позволяет мне перечислить все поля в текущей таблице
В любом случае посмотрите, выполняет ли этот код то, что вы хотите, как описано в вашем вопросе
Sub LoadFieldNames()
Dim objProject As MSProject.Project
Dim tskTable AS MSProject.Table
Dim tskTables AS MSProject.Tables
Dim tskTableField AS MSProject.TableField
Dim strFieldName AS String
Set objProject = Application.ActiveProject
Set tskTables = objProject.TaskTables
' Loop thru all tables
For Each tskTable In tskTables
' Loop through each field in each table
For Each tskTableField in tskTable.TableFields
strFieldName = GetFieldName(tskTableField)
ComboBox1.AddItem strFieldName
Next
Next
Set objProject = Nothing
Set tskTable = Nothing
Set tskTables = Nothing
Set tskTableField = Nothing
End Sub
Попробуйте добавить функцию из этого поста , чтобы создать функцию GetFieldName
... и она должна скомпилироваться
Private Function GetFieldName(ByVal objField As MSProject.TableField) As String
' find the field name (actually colmn heading) for a field (column) in a data table
Dim lngFieldID As Long
Dim strResult As String
lngFieldID = objField.Field
With objField.Application
strResult = Trim(objField.Title) ' first choice is to use the title specified for the column in the table
If Len(strResult) = 0 Then
' try to get the custom field name- this will come back blank if it's not a custom field
strResult = Trim((CustomFieldGetName(lngFieldID)))
End If
If Len(strResult) = 0 Then
strResult = Trim(.FieldConstantToFieldName(lngFieldID)) ' use the field name
End If
End With
GetFieldName = strResult
End Function