Documentos de Académico
Documentos de Profesional
Documentos de Cultura
I. Introducción
II. Editor de Visual Basic (VBA)
III. Variables, Tipos de Datos y Constantes
IV. Objetos, Propiedades y Funciones
V. Estructuras condicionales con VBA
VI. Estructuras iterativas con VBA
VII. Diseño y Programación de Formularios
VARIABLES
• Las variables almacenan valores (datos, constantes, nombres, resultados, etc.). Existen
muchos tipos de variables, pero los más habituales son los siguientes:
CLASES DE VARIABLES
• Variables locales: son aquéllas que se declaran dentro de un módulo y no pueden utilizarse fuera
de él. Para declararlas al principio del módulo correspondiente se utiliza:
Dim NombreDeLaVariable As TipoDeVariable
Dim Nombre1, Nombre2,… As TipoDeVariable
• Variables públicas: están disponibles en todos los módulos de un proyecto. Se definen antes del
primer procedimiento con el comando:
Public NombreDeLaVariable As TipoDeVariable
• Variables estáticas: conservan su valor en todos los procedimientos y se declaran como:
Static NombreDeLaVariable As TipoDeVariable
• Constantes: son valores cuyo valor no cambia al ejecutar un procedimiento. Se declaran como:
Const NombreDeLaVariable As TipoDeVariable
Las constantes también pueden ser públicas de la forma Public Const…
Una vez que una variable se ha declarado, se le puede asignar un valor de la forma:
NombreDeLaVariable = Valor.
OPTION EXPLICIT
• Se usa en el nivel de módulo para forzar declaraciones explícitas de todas las variables
en dicho módulo, debe aparecer en un módulo antes de cualquier procedimiento.
• Se utiliza para evitar escribir incorrectamente el nombre de una variable existente o
para evitar confusiones en el código, donde el alcance de la variable no está claro.
• Si intentamos usar un nombre de variable no declarado, ocurrirá un error en tiempo de
compilación o en tiempo de ejecución.
• Cuando no usamos la instrucción Option Explicit todas las variables no declaradas son
Variant.
VARIABLES LOCALES
• Una variable es local cuando está declarada
dentro de la macro donde se usará. También se
pueden declarar varias variables en la misma línea
de código.
Nota:
• No es necesario incluir todos los datos que se piden, basta, por ejemplo, con escribir el mensaje,
pero hay que mantener el orden en el que se escriben.
ENTRADA DE DATOS (II)
SALIDA DE RESULTADOS (I)
• El comando MsgBox muestra el resultado de las operaciones que ha realizado con los datos
introducidos en un nuevo cuadro de diálogo
4. Diseñar un programa que calcule el precio total de una compra a partir del número de unidades compradas,
el precio unitario y el impuesto, creando los correspondientes cuadros para introducir las variables y el
cuadro con la respuesta final.
SALIDA DE RESULTADOS (VI)
SALIDA DE RESULTADOS (VII)
SALIDA DE RESULTADOS (VIII)
CONVERSIÓN DE TIPOS DE DATOS (I)
• Es posible convertir variables de un tipo a otro. Existen distintas funciones que permiten
hacer estas conversiones. El nombre de la función determina el tipo devuelto:
CONVERSIÓN DE TIPOS DE DATOS (II)
• Es posible convertir variables de un tipo a otro. Existen distintas funciones que permiten
hacer estas conversiones. El nombre de la función determina el tipo devuelto:
CONVERSIÓN DE TIPOS DE DATOS (III)
• Las variables String siempre deben ir entre comilla, salvo
cuando hacen referencia a algún valor que venga de la
misma hoja de Excel
I. Introducción
II. Editor de Visual Basic (VBA)
III. Variables, Tipos de Datos y Constantes
IV. Objetos, Propiedades y Funciones
V. Estructuras condicionales con VBA
VI. Estructuras iterativas con VBA
VII. Diseño y Programación de Formularios
PRINCIPALES OBJETOS EN VBA
OBJETO RANGE (I)
• El objeto Range representa una celda, o un rango de celdas.
Range(cadena).Propiedad
• El argumento cadena representa a una celda o un rango de celdas.
OBJETO RANGE (II)
OBJETO RANGE (III)
La función RGB
• Devuelve un número entero tipo Long (hasta el valor 2,147,483,647) este valor
representa un valor de color.
OBJETO RANGE (IV)
OBJETO RANGE (V)
• Con el objeto Range aplique los siguientes formatos a la celda A1:
Negrita, Cursiva, Subrayado, Tamaño, Fuente Broadway,
Color de fuente roja y color de Relleno verde vivo
OBJETO RANGE (VI)
• Con el objeto Range se puede asignar el valor de una celda en otra, incluso en otra celda
de otra hoja.
Range("D4").FormulaR1C1 = "=R3C2*10"
Range("D4").FormulaR1C1 = "=R[-1]C[-2]*10"
OBJETO WORKSHEETS (I)
• La clase o conjunto WorkSheets contiene todos los objetos WorkSheet abiertos en un
momento determinado en Microsoft Excel.
• Cada objeto WorkSheet representa una hoja de cálculo.
OBJETO WORKSHEETS (II)
• También puede utilizar los objetos Sheets y Activesheet.
OBJETO WORKBOOKS (I)
• La clase o conjunto WorkBooks contiene todos los objetos WorkBook abiertos en un momento
determinado en Microsoft Excel.
• Cada objeto WorkBook representa un libro en Excel.
OBJETO WORKBOOKS (II)
ActiveWorkBook:
• Este objeto hace referencia al libro activo, de tal forma que cualquier acción que se pueda
ejecutar afectará al libro activo dentro del grupo de libros que pudieran estar abiertos.
INTRODUCCIÓN A LAS FUNCIONES EN VBA (I)
• Copie el siguiente procedimiento y ejecútelo
• Una vez haya ejecutado la macro, observe que en la celda donde se ha colocado la función
=SUMA, aparece #¿NOMBRE?, esto significa que Excel no reconoce el nombre de la función, que
no existe.
INTRODUCCIÓN A LAS FUNCIONES EN VBA (II)
Uso de Funciones del Excel en VBA
• Sin embargo, esta función si existe y funciona perfectamente cuando se digita directamente sobre
la hoja de cálculo, se preguntará el porqué cuando se colocan desde una macro no funcionan.
• Pues resulta que para que cualquier función de Excel insertada desde una macro NO muestre
error, debe ponerse con su nombre en Inglés, la traducción se hace luego de forma automática. Es
decir en la macro debe ponerla en inglés y luego cuando esta se inserte en la hoja aparecerá con
su nomenclatura en el idioma que corresponda
• Modifique el procedimiento del ejemplo y digite: