Método Resource.SetField (Project)
Define um valor do campo personalizado de recurso especificado.
Sintaxe
expressão. SetField
( _FieldID_
, _Value_
)
Expressão Uma variável que representa um objeto Resource .
Parâmetros
Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
---|---|---|---|
FieldID | Obrigatório | Long | Para um campo personalizado local pode ser uma das seguintes constantes PjField para campos personalizados de recurso. Para um campo personalizado da empresa, use o método FieldNameToFieldConstant para obter o FieldID. |
Value | Obrigatório | String | O valor do campo. |
Exemplo
O exemplo a seguir mostra como acessar um campo personalizado de recurso de empresa, usando o método SetField e o método GetField para o objeto Resource junto com os métodos FieldNameToFieldConstant e FieldConstantToFieldName.
Para usar o exemplo, use Project Web App para criar um campo personalizado de texto do recurso da empresa denominado TestEntResText.
Reinicie o Project Professional com um perfil do Project Server, para que ele inclua o novo campo personalizado.
Crie um projeto, forme a equipe usando os recursos da empresa e atribua um recurso para a primeira tarefa.
A macro TestEnterpriseResourceCF usa o método FieldNameToFieldConstant para localizar o número do resourceField, por exemplo, 205553667.
A macro mostra o valor de número e o texto em uma caixa de mensagem, usando o método GetField.
A macro define um novo valor do campo personalizado, usando o método SetField.
A macro obtém o nome do campo usando o método FieldConstantToFieldName e mostra o nome do campo e o valor novo em outra caixa de mensagem.
Sub TestEnterpriseResourceCF()
Dim resourceField As Long
Dim resourceFieldName As String
Dim resourceFieldValue As String
Dim message As String
resourceField = FieldNameToFieldConstant("TestEntResText", pjResource)
' Show the enterprise resource field number and old value.
message = "Enterprise resource field number: " & resourceField & vbCrLf
resourceFieldValue = ActiveProject.Tasks(1).Assignments(1).Resource.GetField(resourceField)
If resourceFieldValue = "" Then resourceFieldValue = "[No value]"
MsgBox message & "Field value: " & resourceFieldValue
' Set a value for the enterprise resource custom field.
' Use either the Resources collection or the Assignments collection
' to access the resource custom field.
' Here, use the Assignments collection.
ActiveProject.Tasks(1).Assignments(1).Resource.SetField _
FieldID:=resourceField, Value:="This is a new value."
' For a demonstration, get the field name from the number,
' and then verify the new value.
resourceFieldName = FieldConstantToFieldName(resourceField)
' Here, use the Resources collection to access the custom field.
resourceFieldValue = ActiveProject.Resources(1).GetField(resourceField)
message = "New value for field: " & resourceFieldName & vbCrLf
MsgBox message & "Field value: " & resourceFieldValue
End Sub
Para ver um exemplo de um campo personalizado de recurso local, consulte o método GetField.
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.