Professional Documents
Culture Documents
5
Trabajando con Visual Basic
para Aplicaciones
• Introducción
• Funciones básicas
• Variables y tipos de datos
• Procedimientos
• Funciones personalizadas
• Jerarquía de objetos
• Referencia de objetos
Microsoft Excel 2016
INTRODUCCIÓN
Excel 5 fue la primera aplicación en el mercado que ofreció Visual Basic para aplicaciones.
Visual Basic aplicaciones está pensado como un lenguaje de secuencia de comandos de
aplicaciones Microsoft común incluido en esta versión de Excel 2016, así mismo, mencionar
que ya se tiene pensado dar lugar definitivamente a la tecnología VSTO (Herramientas de
Office en Visual Studio).
El que podamos implementar macros que realicen actividades de copiar, cortar, pegar,
crear gráficos, hacer formulas, generar deportes, e incluso podemos crear programas a
medida, es decir crear programas para que podamos gestionar de forma más rápida las
actividades de la hoja de cálculo.
Podemos crear programas contables, de ventas, para el área comercial, y algún otro
negocio, ayudara a los usuarios a llevar un mejor control sobre la información que se
dispone en ese instante.
Es importante mencionar que un buen programa, se diseña en base al uso correcto de las
instrucciones que ofrece el programa, tratando que el aplicativo sea liviano y seguro.
En nuestro caso también podemos crear ventanas, para que el programa pueda
comunicarse con el usuario; para ello contamos con comandos que realizan una función
distinta cada uno de ellos.
FUNCIÓN INPUTBOX
Permite recopilar datos que el usuario proporciona al sistema, también puede servir para
mostrar un reporte, según el dato ingresado.
Podemos utilizar el valor ingresado para realizar cálculos, o alguna operación dentro de la
hoja o el libro.
Todo dato que se ingrese mediante el INPUTBOX debe ser almacenado en un repositorio,
que generalmente es una variable, y tiene la siguiente forma:
Ejemplo :
FUNCIÓN MSGBOX
Utilice esta función para mostrar mensajes breves, como errores, advertencias o alertas en
un cuadro de dialogo.
También es usado en algunos casos, para marcar la finalización de un proceso, como por
ejemplo, Fin del reporte, Fin de la impresión, etc.
MSGBOX ( “ texto “ )
Ejemplo:
VARIABLES
Una variable es una localización de almacenamiento en memoria con nombre propio. Las variables
pueden almacenar una gran variedad de tipos de datos (texto, número, fecha, etc.).
REPRESENTACIÓN GRÁFICA
TIPOS DE DATOS
VBA hace más fácil el trabajo de programar, ya que se pueden manipular todo lo
concerniente al tratamiento de datos.
El tipo de dato de refiere a la forma en que se guardan los datos en memoria. Debemos
conocer también que VBA puede ocuparse de la clasificación de los datos
automáticamente, la realiza a costa de una ejecución más lenta y más consumo de
memoria.
En la siguiente tabla se presenta la lista de clasificación integrada en VBA del tipo de dato:
TAMAÑO DE
TIPO DE DATO INTERVALO
ALMACENAMIENTO
Byte 1 byte 0 a 255
TAMAÑO DE
TIPO DE DATO INTERVALO
ALMACENAMIENTO
Una cadena de longitud variable puede contener
String 10 byte un máximo de aproximadamente 2 mil millones de
caracteres.
Object 4 byte Cualquier referencia al tipo Objetc
Cualquier valor numérico hasta el intervalo de un
Variant 16 byte
doublé.
Variant 22 byte Tiene el mismo intervalo de un tipo de dato String.
DECLARAR VARIABLES
Si no se declara el tipo de dato para una variable que se utiliza dentro de un módulo en
VBA, este usa el tipo predeterminado de dato que es el tipo VARIANT.
OPTION EXPLICIT
Para que esta sentencia se inserte en forma automática al insertar cualquier módulo de
VBA, realicemos lo siguiente:
Dimensionando la Variable
Una variable se declara o dimensiona para pedir a VBA que reserve un espacio de memoria
para guardar la variable mientras se ejecuta las sentencias.
Aunque no sea obligatoria dimensionar las variables antes de usarlas, al hacerlo mejora el
desarrollo de sus rutinas y las hace más fáciles de depurar.
Todas las variables, constantes, subrutinas y funciones de VBA tienen lo que se llama un
ámbito, que se refiere al área en la que una aplicación VBA puede acceder a una variable,
constante, subrutina o función.
Para tener una mejor visión de conjunto, vemos como establecer el ámbito para todos los
elementos de VBA que podemos utilizar variables, constantes, subrutinas y funciones.
Al nivel de modulo Incluye una instrucción DIM, antes del primer procedimiento de un módulo.
Todos los módulos Incluye una instrucción PUBLIC, antes del primer procedimiento de un módulo
Un variable a nivel de proyecto se puede acceder desde cualquier modulo dentro del
proyecto donde haya sido declarada, pues mantiene su valor.
La palabra reservada PUBLIC se usa para declarar una variable a nivel de proyecto, esto
se hace antes de una subrutina o función.
VARIABLES ESTÁTICAS
Hemos mencionado que las palabras reservadas DIM o PUBLIC pueden usarse para
declarar variables; sim embargo, la palabra reservada STATIC también puede usarse para
declarar variables, pero solo a nivel de procedimiento. Un ejemplo seria:
PROCEDIMIENTOS
TIPOS DE PROCEDIMIENTO
1. PROCEDIMIENTOS SUB
Un procedimiento es un conjunto de instrucciones que ejecuta una acción
2. PROCEDIMIENTOS FUNCTION
Una función es un conjunto de instrucciones que devuelve un valor o una matriz.
3. PROCEDIMIENTOS PROPERTY
Son procedimientos especiales que se usan en los módulos de clase.
IMPORTANTE
FUNCIONES PERSONALIZADAS
El valor por defecto devuelto por un procedimiento de tipo FUNCTION es del tipo VARIANT.
Debe especificar un tipo de dato devuelto usando la palabra reservada AS.
IMPORTANTE
Funciones de fechas
Funciones de texto
Valor Descripción
1 Convierte la cadena a caracteres en mayúscula.
2 Convierte la cadena a caracteres en minúscula.
3 Convierte la primera letra de cada palabra de la cadena en mayúscula.
Funciones Matemáticas
JERARQUÍA DE OBJETOS
Es la que permite determinar qué elementos u objetos están por encima de otros, esto es muy
importante, gracias a esta jerarquía podemos acceder a un objeto determinado.
Recordemos que todos los elementos que trabaja Excel, son considerados objetos, por este motivo
es necesario conocer la jerarquía de objetos.
VBA es considerado un programa orientado objetos, ya que tiene la opción de poder trabajar con
una variedad de objetos.
¿QUÉ ES UN MÓDULO?
Un módulo lo podemos definir como un contenedor de macros, los cuales tendrán un conjunto de
códigos agrupados por bloques o procedimientos.
PROCEDIMIENTO SUB
Es un bloque de código que realiza una acción y responde a un único evento, que es el
click.
PROCEDIMIENTO FUNCTION
PROCEDIMIENTO PROPERTY
¿QUÉ ES UN OBJETO?
Un objeto representa un elemento de una aplicación, como una hoja de cálculo, una celda, un
gráfico, un formulario o un informe. En el código de Visual Basic, debe identificar un objeto antes
de aplicar uno de los métodos del objeto o cambiar el valor de una de sus Propiedades.
COLECCIÓN
Tener presente que esa colección sheets, también es considerada objeto. Veamos los dos objetos
más importantes de VBA.
Workbook1
Workbook2
WorkSheet1
WorkSheet2
APPLICATION
WORKWOOKS
WORKSHEETS
RANGE CELLS
REFERENCIA DE OBJETOS
REFERENCIA A CELDA O RANGO
Si nosotros deseamos hacer una referencia a una celda, podemos utilizar una de los siguientes
comandos:
RANGE
Range ( “celda” )
Range ( “Rango” )
CELLS
REFERENCIA A UN LIBRO
Workbooks.open(“E:\Sistema.xlsx”)
EJEMPLO 1
Range(“d7”).value = 2018
Cells(7,”d”) = 2018
EJEMPLO 2
Sheets(3).cells(2,”C”) = “Reporte”
EJEMPLO 3
Workbooks(“consolidado”).sheets(“gráfico”).cells(7,”a”) = “Gráfico”
EJEMPLO 4
Escribir una macro que solicite el nombre de una celda y lo deposite en la celda f4
Cells(4,”f”) = nombre
EJEMPLO 5
Escribir una macro que muestre un mensaje donde indique la hora del sistema