Curso Excel VBA y Macros – Cap. 15 – Variables de objeto y la instrucción SET

<<CURSO COMPLETO EN YOUTUBE>>

El uso de variables nos permite asignar valores a un espacio en memoria, y ese espacio se representa por un nombre. Tales nombres serán las variables a las cuales los valores almacenados tendrán determinados tipos, Integer, Double, Single, Date, Object. Éste último, el tipo Object es de lo que platicamos en este capítulo:

Para qué nos ayudan las variables de objeto

  • Las variables pueden ser asignadas a objetos.
  • Uso de la instrucción SET.
  • Ejemplos reales.
    • Buscamos un valor y coloreamos la celda donde se encuentre el valor.
    • Creamos una lista de validación a un rango.

Ver video Capítulo 15 Excel VBA & Macros

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Qué son las Variables de objeto (object variables)

Al asignar una variable a un objeto, la variable puede ser tratada de la misma manera que el objeto al que se hace referencia, lo que significa que podemos acceder a sus propiedades y métodos.

Por qué usar variables de objeto

Existen dos razones principales por las que debemos usar variables de objeto:

  • Nos ayudan a simplificar nuestro código VBA.
  • Las macros se ejecutan más rápido.

Variables asignadas a objetos

Como lo comentamos, al asignar las variables a objetos, podemos acceder a sus propiedades y métodos como si de los mismo objetos se tratara. Entre otros objetos, podemos asignar variables a:

  • Objeto Workbook
    • Dim NuevoArchivo as Workbook
  • Objeto Worksheet
    • Dim NuevaHoja as Worksheet
  • •Objeto Range
    • Dim Rango as Range

Uso de la instrucción SET

En los ejemplos anteriores vimos que para declarar variables deberemos usar la palabra reservada Dim, seguida del nombre de la variable y luego el tipo del objeto (as object). Si por ejemplo deseamos asignar el rango A1:B10 a la variable Rango, lo hacemos de la siguiente manera:

Dim Rango as Range

Set Rango = ThisWorkbook.Sheets(“Hoja1”).Range(“A1:B10”)

Y cada vez que deseemos acceder a sus propiedades y métodos el rango, solo ingresamos Rango, seguido de un punto para ver mediante Intellisense las propiedades y métodos.

Figura 1. Uso del objeto Range a la variable Rango. Uso de la instrucción SET

Ejemplos prácticos

En las siguientes macros haremos uso de variables de objeto y la instrucción SET aplicadas a ejemplos reales.

Option Explicit

'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh

'Uso simple de asignación de objetos a variables
Sub SimpleSET()

Dim NuevaHoja As Worksheet
Set NuevaHoja = Application.Sheets.Add

NuevaHoja.Name = "HojaNueva"

End Sub

'Buscamos un valor y coloreamos la celda donde se encuentre el valor
Sub ColorearCelda()

Dim RangoBuscar As Range
Dim RangoEncontrado As String

Set RangoBuscar = Range("A1:A13")
RangoEncontrado = RangoBuscar.Find(What:="MARZO", LookAt:=xlPart, MatchCase:=False).Address

Sheets("Variables de objeto").Range(RangoEncontrado).Interior.Color = VBA.vbRed

End Sub

'Creamos una lista de validación a un rango
Sub Validacion()

Dim HojaLista As Worksheet
Dim RangoLista As Range
Dim MiRango As Range

Set HojaLista = ThisWorkbook.Worksheets("Variables de objeto")
Set RangoLista = HojaLista.Range("A2:A13")
Set MiRango = HojaLista.Range("D1")

MiRango.Validation.Delete
MiRango.Validation.Add xlValidateList, _
    Formula1:="='" & HojaLista.Name & "'!" & RangoLista.Address

End Sub

Descarga el archivo de ejemplo

015 – Variables de objeto y la instrucción SET.zip

<<CURSO COMPLETO EN YOUTUBE>>

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

También te podría gustar...