Como usar a instrução Set no VBA?

No VBA (Visual Basic for Applications), a instrução `Set` é usada para atribuir um objeto a uma variável de objeto. Isso é necessário porque, diferentemente de tipos de dados simples (como Integers, Strings, etc.), os objetos em VBA são gerenciados por referências, e a atribuição de referências é feita usando o `Set`.

Veja a estrutura básica de como usar a instrução `Set`:

Dim objeto As Object
Set objeto = CreateObject("Tipo.DoObjeto")

Ou, se você estiver lidando com uma aplicação específica, como o Excel ou o Access, poderia ser algo como:

Dim planilha As Worksheet
Set planilha = ThisWorkbook.Worksheets("NomeDaPlanilha")

Ou, em um contexto de Access, para abrir um conjunto de registros (Recordset):

Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("NomeDaTabelaOuConsulta")

É importante lembrar de liberar os objetos da memória quando você terminar de usá-los. Isso é feito configurando a variável de objeto para `Nothing`:

Set objeto = Nothing

Aqui estão algumas dicas adicionais ao usar o `Set`:

  • Somente Variáveis de Objeto: O `Set` é usado apenas para variáveis que armazenam objetos. Para tipos de dados primitivos, como números e strings, não é necessário usar `Set`.
  • Erro de Tempo de Execução: Se você tentar usar `Set` para atribuir um valor direto que não é um objeto, isso resultará em um erro de tempo de execução.
  • Métodos Que Retornam Objetos: Muitos métodos em VBA retornam objetos, e é aí que o `Set` se torna essencial para capturar esses retornos.
  • Evite Vazamentos de Memória: Sempre libere os objetos usando `Set objeto = Nothing` assim que eles não forem mais necessários. Isso ajuda a evitar vazamentos de memória.

Esses exemplos ilustram o uso básico da instrução `Set` em diferentes contextos no VBA.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project