Una variable es un dato o un conjunto de datos almacenados con una definición determinada. VBA permite la definición de muchas variables, las mismas que, de acuerdo al tipo de dato o valor almacenado, se denominan de manera distinta. Existen, entre otras, las variables Integer (para almacenar números enteros), Double (números con hasta dos cifras decimales) y String, para almacenar datos como texto.
La función String permite almacenar desde 0 hasta 2x10^9 caracteres, ya sean letras o números, siempre serán leídos como texto.
Declarar un String en VBA
La fórmula general para definir variables es la siguiente:
Dim [Nombre de la variable] As [Tipo de Variable]
-En el caso de una variable tipo String, que llamaremos "Ejemplo1" se pondría el siguiente comando:
Dim [Ejemplo1] as String
-Y una vez insertado el comando, se procederá a definir la variable "Ejemplo1", de la forma estándar de VBA:
Ejemplo1="Este es un ejemplo del uso de String para la Tarea 1 de Excel Avanzado".
De esta forma, cada vez que se quiera usar el texto, en vez de escribir todo el texto, invocaremos la variable "Ejemplo1", ahorrando asì tiempo.
Ejemplo de String en VBA
De una base de datos de notas de un curso, deseamos que Excel haga aparecer una ventana, indicando la nota que ha obtenido cada alumno.
(Para mayor visualización de la imagen, hacer click en la misma)
Ahora, definimos la macro, de tal forma que queremos que salga un mensaje que nos indique que el alumno X ha obtenido la nota Y:
(Para mayor visualización de la imagen, hacer click en la misma)
En este caso, como el mensaje hace referencia a dos celdas distintas (la celda de alumno y la celda de nota), creamos dos variables String: "El alumno " y "ha obtenido en el curso la nota de ". Al ejecutar la macro, se obtiene el siguiente resultado. Luego, se define el mensaje con Msg.Box y se incluye entre las dos variables string los datos de las celdas que queremos mostrar. El resultado se muestra como sigue:
(Para mayor visualización de la imagen, hacer click en la misma)
No obstante, solo nos está botando el resultado del primer alumno. La macro debería repetir este ejercicio las cuatro veces para los cuatro alumnos, por lo que debemos indicar que repita la acción con el "For i = 2 to 5", para automatizar en cada una de las celdas donde hay información. De este modo, la versión final de la macro es:
(Para mayor visualización de la imagen, hacer click en la misma)
De esta forma, una vez que haya mostrado el mensaje del primer alumno, la macro pasará a la siguiente fila y mostrará los mensajes de los siguientes alumnos, hasta culminar.
Por: Daniel Oporto Patroni
17/05/2017 a las 1:03 pm
Gracias, por la explicación.
Muy didactico y entendible.
saludos desde Perú.
30/05/2017 a las 7:23 pm
buenas tardes...
soy nuevo en esto de programacion de macros..(bueno novato)
quiero iniciarme para aprender lo basico primeramente--
que recomientas leer o que paginas visitar!
Saludos
01/06/2017 a las 3:36 pm
Estimado Francisco
Te recomiendo comenzar por:
https://www.excel-avanzado.com/introduccion-a-las-macros
Saludos
19/07/2019 a las 9:38 am
hola alguien que me ayude con la siguiente pregunta[
necesito sacar el porcentaje de un valor variable y sumarlo y que el resultado quede en la misma celda ejemplo
si tengo en a1 un valor x necesito sacar el 12 % de ese valor y sumarlo al valor de a1 pero quede en la misma celda.
muchas gracias por la ayuda
03/01/2020 a las 10:10 am
Multiplica el valor de A1 * 1.12
11/05/2020 a las 1:07 pm
Hola una pregunta, cuando yo tengo un valor que son números y letras, existe algún tipo de variable que permita realizar operaciones como multiplicación y división con este valor.
31/07/2020 a las 12:33 pm
Sub prueba()
Dim xActivoNO As String
Sheets("Filtro").Range("B2").Select
For i = 2 To 3
xActivoNO& i = ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Next i
End sub
No puedo darle al nuevo nombre xActivoNO dependiendo de i, ya que necesito que quede en la memoria.
27/09/2020 a las 5:07 pm
Sub test()
'La celda A1 es igual a A11
'Cómo puedo hacer para que el resultado sea 2? Gracias
A11 = 2
R = "A" & 1 & 1
Cells(1, 1) = R
End Sub