Curso Excel VBA y Macros – Cap. 14 – Variables, constantes y tipos de datos

<<CURSO COMPLETO EN YOUTUBE>>

Cuando programamos en VBA, es muy común almacenar valores para luego volver a usarlos. Podemos almacenar valores que irán cambiando conforme se ejecute una macro (Variables) y otros valores que siempre serán fijos durante la ejecución de la macro (Contantes).

Las variables

Una variable es un espacio en memoria donde almacenamos valores que irán cambiando su valor conforme se ejecute una macro. El valor asignado a una variable si bien puede ser fijo, si durante la ejecución de la macro se requiere acceder a ese valor, lo podemos llamar o modificar su valor almacenado. Las variables serán definidas mediante un nombre personalizado.

En el siguiente ejemplo usamos la variable Ventas con el valor de 10. Después de mostrarlo le sumamos 1 al valor inicial y luego lo mostramos.

Ventas = 10
MsgBox Ventas
Ventas = 10 + 1
MsgBox Ventas

Ver video Capítulo 14 Excel VBA & Macros

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

Las constantes

Cuando deseamos que un valor o un texto siempre tenga el mismo valor, pero a su vez lo deseamos seguir utilizando en el trascurso de la macro, aquí es donde usamos constantes. En el siguiente ejemplo definimos el texto EXCELeINFO a la contante Titulo.

Const Titulo = “EXCELeINFO”
MsgBox “Prueba”, vbOKOnly, Titulo

Reglas para las variables

Al momento de nombrar las variables y contantes, debemos seguir una serie de reglas para el uso de los nombres:

· La primera letra debe ser una letra.

· Podemos usar letras y número, además de vocales acentuadas.

· Es recomendable usar mayúsculas y minúsculas para una mejor lectura (NombreVendedor).

· No se pueden usar espacios, pero sí el guión bajo (Tipo_venta).

· No se pueden usar caracteres especiales tipo @, &, $ o ¡.

· El límite de caracteres es de 254, pero por practicidad no se recomienda usar nombres largos.

Por qué usar variables en nuestras macros y procedimientos

¿Podemos trabajar en VBA sin variables? Sí. Depende de cómo aprendamos macros es el nivel de pulcritud que tendrá tu código. Lo recomendable es usar variables por varios motivos:

· El código es más legible.

· Es más sencillo mantener un código con variables.

· Podemos reutilizar variables a lo largo del código.

· Podemos reutilizar variables dentro de otras macros (ámbito de las variables).

Asignación de valores

Usaremos el signo de igual “=” para asignar valores a variables, de la misma manera que usamos el signo para asignar valores a celdas.

En el siguiente ejemplo la variable Ventas es igual a 10 y ese valor lo asignamos a la celda A1 de la hoja 1.

Ventas = 10
Sheets(1).Range(“A1”).Value = Ventas

Tipos de valores

Si bien podemos trabajar con variables en nuestras macros, es importante saber que podemos definirle tipos de valores a esas variables, por ejemplo, si una variable será de tipo cadena de texto, número, número con decimales o una fecha.

VBA nos permite trabajar sin necesidad de decirle de qué tipo de datos son nuestras variables, pero eso puede generar que nuestro código corra una poco más lento o no saber exactamente cómo tratar un tipo de variable.

El definir los tipos de datos de las variables, nos permiten hacer un uso adecuado de la memoria en nuestra computadora.

En la siguiente tabla se muestran los tipos de datos incorporados en VBA.

Tipo de dato Bytes Rango de valores

Byte

1 byte

0 a 255

Boolean

2 bytes

Verdadero o falso

Integer

2 bytes

–32,768 a 32,767

Long

4 bytes

–2,147,483,648 a 2,147,483,647

Single (Decimal simple)

4 bytes

Números reales de 32 bits y 7 decimales. –3.402823E38 a –1.401298E-45 (para valores negativos); 1.401298E-45 a 3.402823E38 (valores positivos)

Double (decimal doble)

8 bytes

Números de 64 bits y 16 decimales. –1.79769313486232E308 a –4.94065645841247E-324 (valores negativos); 4.94065645841247E-324 a 1.79769313486232E308 (para valores positivos)

Currency

8 bytes

15 dígitos a la izquierda del punto decimal y 4 a la derecha. –922,337,203,685,477.5808 to 922337203685477

Date

8 bytes

Enero 1, 0100 a Diciembre 31, 9999

Object

4 bytes

Cualquier referencia a un objeto

String (variable length)

10 bytes + 1 byte por cada carácter

0 a aproximadamente 2 billones de caracteres

String (longitud fija)

Tamaño de la cadena

1 a 65,535 caracteres

Variant (with numbers)

16 bytes

Cualquier valor numérico hasta el rango de un tipo de datos doble. También puede contener valores especiales, como Empty, Error, Nothing y Null.

Variant

(con caracteres) 22 bytes + 1 byte por cada carácter

0 a aproximadamente 2 billones de caracteres

User-defined

Varios

Varía según el elemento

Declaración de variables

Declarar variables con el tipo de datos correcto nos permite hacer un uso adecuado del espacio almacenado en memoria. Aunque podemos trabajar sin declarar variables, no es recomendable.

Para obligarnos a declarar siempre las variables podemos usar el texto Option Explicit al inicio de cada módulo.

Las siguientes macros son ejemplos de los diferentes tipos de datos asignados a variables.

Option Explicit

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

Sub Variables()

Dim Ventas As Byte

Ventas = 10
MsgBox Ventas
Ventas = 10 + 1
MsgBox Ventas

Ventas = 10
Sheets("Hoja3").Range("A1").Value = Ventas

End Sub

Sub Constante()

Const Titulo = "EXCELeINFO"
MsgBox "Prueba", vbOKOnly, Titulo

End Sub

Sub tipo_byte()

Dim Valor As Byte

Valor = 200

MsgBox Valor

End Sub

Sub tipo_boolean()

Dim Decisión As Boolean

Decisión = True

MsgBox Decisión

End Sub

Sub tipo_integer()

Dim Columnas As Integer

Columnas = Cells.Columns.Count

MsgBox Columnas

End Sub

Sub tipo_long()

Dim Filas As Long

Filas = Cells.Rows.Count

MsgBox Filas

End Sub

Sub tipo_single()

Dim Valor As Single

Valor = 1.158159

MsgBox Valor

End Sub

Sub tipo_double()

Dim Valor As Double

Valor = 1.7976931348623

MsgBox Valor

End Sub

Sub tipo_currency()

Dim Precio As Currency

Precio = 123456789.125

MsgBox Precio

End Sub

Sub tipo_date()

Dim Fecha As Date
Dim Fecha2 As Date

Fecha = Now()
Fecha2 = #5/2/2019#

MsgBox Fecha
MsgBox VBA.Format(Fecha2, "dd/mmm/yyyy")

End Sub

Sub tipo_objeto()

Dim Hoja As Worksheet

Set Hoja = Application.ActiveSheet

MsgBox Hoja.Name

End Sub

Sub tipo_string()

Dim Cadena As String

Cadena = "EXCELeINFO"

MsgBox Cadena

End Sub

Sub tipo_string2()

Dim Cadena As String * 5

Cadena = "EXCELeINFO"

MsgBox Cadena

End Sub

Sub tipo_variant()

Dim Valor As Variant
Dim Valor2 As Variant

Valor = 1545487878.35
Valor2 = "Curso de macros EXCELeINFO"

MsgBox Valor
MsgBox Valor2

End Sub

Descargar archivo de ejemplo

014 – Variables, constantes y tipos de datos.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.

You may also like...