Curso Excel VBA y Macros – Cap. 15 – Variables de objeto y la instrucción SET
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
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.