Instrução Set

Atribui uma referência de objeto a uma variável ou propriedade.

Sintaxe

Definirobjectvar= {[ Novo ] objectexpression | Nothing }

A sintaxe da instrução Set tem as seguintes partes:

Parte Descrição
vardeobjeto Obrigatório. Nome da variável ou propriedade; segue as convenções de nomenclatura padrão para variáveis.
New Opcional. New normalmente é usado durante a declaração para habilitar a criação implícita de objeto. Quando New é usado com Set, cria uma nova instância da classe. Se vardeobjeto continha uma referência a um objeto, a referência é liberada quando a nova é atribuída. A nova palavra-chave não pode ser usada para criar novas instâncias de qualquer tipo de dados intrínseco e não pode ser usada para criar objetos dependentes.
expressãodeobjeto Obrigatório. Expressão que consiste no nome de um objeto, em outra variável declarada do mesmo tipo de objeto ou em uma função ou método que retorna um objeto mesmo tipo de objeto.
Nothing Opcional. Interrompe a associação de vardeobjeto com qualquer objeto específico. A atribuição de Nothing a vardeobjeto libera todos os recursos do sistema e da memória associados ao objeto referenciado anteriormente quando nenhuma outra variável se refere a ele.

Comentários

Para ser válido, vardeobjeto deve ser um tipo de objeto consistente com o objeto que está sendo atribuído a ele.

As instruções Dim, Private, Public, ReDim e Static declaram apenas uma variável que se refere a um objeto. Nenhum objeto real é referenciado até que você use a instrução Set para atribuir um objeto específico.

O exemplo a seguir ilustra como Dim é usada para declarar uma matriz com o tipo Form1. Nenhuma instância de Form1 existe realmente. Em seguida, Set atribui referências a novas instâncias de Form1 para a variável myChildForms. Esse tipo de código pode ser usado para criar formulários filho em um aplicativo MDI.

Dim myChildForms(1 to 4) As Form1 
Set myChildForms(1) = New Form1 
Set myChildForms(2) = New Form1 
Set myChildForms(3) = New Form1 
Set myChildForms(4) = New Form1 

Em geral, quando você usa Set para atribuir uma referência de objeto a uma variável, nenhuma cópia do objeto é criada para a variável. Em vez disso, é criada uma referência ao objeto. Mais de uma variável de objeto pode referir-se ao mesmo objeto. Como essas variáveis são referências ao objeto em vez de cópias dele, qualquer alteração no objeto é refletida em todas as variáveis que se referem a ele. No entanto, ao usar a palavra-chave New na instrução Set, na verdade você cria uma instância do objeto.

Exemplo

Este exemplo usa a instrução Set para atribuir referências de objeto a variáveis. Pressupõe-se que YourObject seja um objeto válido com uma propriedade Text.

Dim YourObject, MyObject, MyStr 
Set MyObject = YourObject    ' Assign object reference. 
' MyObject and YourObject refer to the same object. 
YourObject.Text = "Hello World"    ' Initialize property. 
MyStr = MyObject.Text    ' Returns "Hello World". 
 
' Discontinue association. MyObject no longer refers to YourObject. 
Set MyObject = Nothing    ' Release the object. 

Confira também

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.