Está en la página 1de 35

¿Para qué sirve VBA en Excel?

Como es sabido, el uso del programa Excel automatiza la carga de trabajo para la
creación de informes, sin embargo el empleo de macros en Excel mecaniza aún más
las tareas repetitivas que mediante las herramientas y fórmulas de Excel no se logra.
Por ejemplo, podemos crear una macro que me permita eliminar todos los gráficos que
se encuentran en una hoja de cálculo, esto solo se haría de forma manual, lo cual
demoraría cierto tiempo si es hay demasiadas formas, sin embargo si creamos una
macro que permita eliminar todo de uno se reduce el tiempo de manera considerable.

 Creación de reportes a medida

Cada reporte tiene su particularidad, depende del creador del archivo darle la apariencia
más atractiva para otros usuarios, esto con el propósito de generar un informe de fácil
comprensión y detalle. Por ejemplo, a través del visual basic el usuario puede crear
funciones específicas, así también crear tablas dinámicas a través de macros,
igualmente crear un catálogo de imágenes en Excel a través de visual basic, etc. En fin,
infinidad de elementos que se nos brinda para crear un reporte a la medida.

 Dinámico y fácil uso

La comprensión del manejo de macros en Excel es accesible para todos y la


implementación del mismo no es de gran complejidad. Se requiere de capacidad para
investigar y ganas de conocer el sistema. No es como otros programas que requieren
de manuales especializados y ciertos conocimientos previos y más adaptados para
usuarios informáticos. Una vez aprendido lo esencial del sistema se logra gran
dinamismo en la obtención de reportes.

 Ejecución de tareas y cálculos complejos

A través del uso de macros en Excel se logra la ejecución de cálculos complejos de


forma sencilla, esto se puede lograr a través de la creación de funciones. Por ejemplo a
través del UDF se puede crear una función en específico de un rendimiento financiero
a futuro, el cual convertirá una formula compleja y larga en algo más simple.

 Incremento de eficacia y eficiencia

Al automatizar las tareas y reducir el tiempo de espera en la creación de reportes e


informes se logra eficiencia, ya que las tareas repetitivas y mecanizadas que antes eran
realizados por el usuario son ahora ejecutados por el programa. Este tiempo lo podemos
utilizar en otros intereses.

¿Qué es una Macro en Excel?


Las Macros en Excel son un conjuntos de instrucciones que se ejecutan de manera
secuencial por medio de una orden de ejecución, claro está que una Macro puede
invocar a otras, logrando de esta forma obtener operaciones cada vez más complejas.
En el caso de Excel el lenguaje empleado para el uso de Macros es VBA (Visual Basic
para Aplicaciones), Excel cuenta con un "Editor de Visual Basic" o también conocido
como "Editor de VBA" que permite la creación, y/o mantenimiento de las Macros que se
tengan disponibles.

P á g i n a 1 | 54
¿Para qué sirve una Macro en Excel?
Las Macros en Excel son útiles entre otras cosas porque permiten la automatización
de tareas repetitivas, por ejemplo si se da cuenta que todos los días se encuentra
creando la misma tabla dinámica (pero con distintos datos), o colocando el mismo
formato a una hoja, entonces es el momento de automatizar dicha labor por medio de
Macros.

En el siguiente artículo se puede ver más de cerca la utilidad de una macro.

¿Cómo crear una Macro en Excel?


El punto fuerte a favor del uso de Macros, es que es sencillo de aprender a crearlas y
ejecutarlas, crear Macros es simple, y se puede llegar a ahorrar mucho tiempo
remplazando aquellas tareas repetitivas por Macros que usted mismo haya creado, uno
de los primeros pasos para acercarse al uso de Macros puede ser el comenzar a utilizar
el grabador de Macros.

¿Cómo configurar la Ficha Desarrollador?

A fin de poder configurar la Ficha Desarrollador y poder emplearla sin dificultades


podemos seguir los siguientes pasos:

1.- Primero hacemos clic en el triángulo invertido en la parte superior izquierda del
documento de Excel para personalizar la barra de herramientas de acceso rápido.

2.- Luego damos click en la opción: "Más comandos" de la lista desplegable:

P á g i n a 2 | 54
3.-Este nos llevará al cuadro de “Opciones de Excel” y ya en este damos click en la
sección “Personalizar cinta de opciones” y en ella activamos la opción
“Desarrollador” que esta desactivada por default:

4.-Una vez que hemos activado la opción podremos ver la sección de


“DESARROLLADOR” en la cinta de opciones:

5.-Y con ello podemos acceder a las herramientas de macros:

6.-Por otro lado si ya tenemos un documento en macros y queremos abrir el documento


vamos a la opción “Archivo”, en la sección más opciones hacemos click en Centro de
confianza y luego en configuración del Centro de confianza:

7.-Haga clic en configuración de macros y finalmente activamos la opción Habilitar todas


las macros.

P á g i n a 3 | 54
Finalmente podemos trabajar libremente y empezar a crear nuestras macros acorde con
nuestras necesidades.

P á g i n a 4 | 54
Controles de Formulario en Excel

Los controles de formulario en Excel son objetos que podemos colocar dentro de una
hoja de nuestro libro, o dentro de un formulario de usuario en VBA, y nos darán
funcionalidad adicional para interactuar mejor con los usuarios y tener un mejor control
sobre la información.

Podemos utilizar estos controles para ayudar a los usuarios a seleccionar elementos de
una lista predefinida o permitir que el usuario inicie una macro con tan solo pulsar un
botón. Los controles de formulario en Excel se encuentran dentro de la ficha
Programador dentro del grupo Controles. Solamente pulsa el botón Insertar y
observarás cada uno de ellos:

 Controles de formulario. Reconocen fórmulas y funciones de la hoja.


 Controles de ActiveX. Sólo reconocen macros y código VBA.

Resumen de controles de formulario

P á g i n a 5 | 54
Nombre Ejemplo Descripción
del
botón
Etiqueta Identifica el propósito de una
celda o un cuadro de texto, o
muestra texto descriptivo (como
títulos, leyendas, imágenes) o
instrucciones breves.

Cuadro de Agrupa controles relacionados


grupo en una unidad visual en un
rectángulo con una etiqueta
opcional. Generalmente, se
agrupan botones de opción,
casillas de verificación o
contenido estrechamente
relacionado.

Botón Ejecuta una macro que realiza


una acción cuando un usuario
hace clic en él. Los botones
también se conocen como
botones de comando.

Casilla Activa o desactiva un valor que


representa una selección
inequívoca entre opuestos.
Puede seleccionar más de una
casilla en una hoja de cálculo o
en un cuadro de grupo. Una
casilla puede tener uno de tres
estados: activada, desactivada
y mixta, lo que significa una
combinación de los estados
activada y desactivada (como
en una selección múltiple).
Botón de Permite una única elección
opción dentro de un conjunto limitado
de opciones que se excluyen
mutuamente; un botón de
opción generalmente está
contenido en un cuadro de
grupo o un marco. Un botón de
opción puede tener uno de tres
estados: activado, desactivado
y mixto, lo que significa una
combinación de los estados
activado y desactivado (como
en una selección múltiple). Los
botones de opción también se
conocen como botones de
radio.
Cuadro de lista Muestra una lista de uno o más
elementos de texto de entre los
cuales puede elegir el usuario.
Use un cuadro de lista para
mostrar grandes cantidades de
opciones que varían en número
o contenido. Existen tres tipos
de cuadros de lista:

 Un cuadro de lista de selección


única permite solamente una
elección. En este caso, un
cuadro de lista se asemeja a un
grupo de botones de opción, a

P á g i n a 6 | 54
Nombre Ejemplo Descripción
del
botón
excepción de que un cuadro de
lista puede controlar un gran
número de elementos de
manera más eficiente.
 Un cuadro de lista de selección
múltiple permite una elección o
elecciones contiguas
(adyacentes).
 Un cuadro de lista de selección
extendida permite una elección,
elecciones y no contiguas, o
inconexas.

Cuadro Combina un cuadro de texto


combinado con un cuadro de lista para
crear un cuadro de lista
desplegable. Un cuadro
combinado es más compacto
que un cuadro de lista pero
requiere que el usuario haga
clic en la flecha abajo para
mostrar una lista de elementos.
Use un cuadro combinado para
permitir que un usuario escriba
una entrada o elija solamente
un elemento de la lista. El
control muestra el valor actual
en el cuadro de texto, sin
importar el modo en que dicho
valor se haya proporcionado.
Barra de Se desplaza por un intervalo de
desplazamiento valores cuando el usuario hace
clic en las flechas de
desplazamiento o arrastra el
cuadro de desplazamiento.
Además, se puede mover por
una página (en un intervalo
preestablecido) de valores
haciendo clic en el área entre el
cuadro de desplazamiento y
cualquiera de las flechas de
desplazamiento. Generalmente,
el usuario también puede
escribir un valor de texto
directamente en un cuadro de
texto o una celda asociados.
Control de Aumenta o disminuye un valor,
número como un incremento numérico,
una hora o una fecha. Para
incrementar el valor, es
necesario hacer clic en la flecha
arriba; para disminuirlo, se debe
hacer clic en la flecha abajo.
Generalmente, el usuario
también puede escribir un valor
de texto directamente en un
cuadro de texto o una celda
asociados.

Controles ActiveX

Los controles ActiveX pueden usarse en formularios de hoja de cálculo, con o sin el uso
de código VBA, y en formularios del usuario de VBA. En general, use controles ActiveX
cuando necesite requisitos de diseño más flexibles que los proporcionados por los

P á g i n a 7 | 54
controles de formulario. Los controles ActiveX tienen amplias propiedades que puede
usar para personalizar su apariencia, comportamiento, fuentes y demás características.

También puede controlar los diversos eventos que se producen cuando se interactúa
con un control ActiveX. Por ejemplo, puede realizar diferentes acciones, según qué
opción seleccione el usuario en un control de cuadro de lista, o puede consultar una
base de datos para rellenar un cuadro combinado con elementos cuando el usuario hace
clic en un botón. También puede escribir macros que respondan a eventos asociados
con controles ActiveX. Cuando un usuario del formulario interactúa con el control, el
código de VBA se ejecuta para procesar cualquier evento que se produzca para dicho
control.

Resumen de controles ActiveX

Nombr Ejemplo Descripción


e del
botón
Casilla Activa o desactiva un valor que representa una
selección inequívoca entre opuestos. Puede
seleccionar más de una casilla a la vez en una hoja
de cálculo o en un cuadro de grupo. Una casilla
puede tener uno de tres estados: activada,
desactivada y mixta, lo que significa una
combinación de los estados activada y desactivada
(como en una selección múltiple).

Cuadro de Le permite, en un cuadro rectangular, ver, escribir o


texto modificar texto o datos enlazados a una celda. Un
cuadro de texto también puede ser un campo de
texto estático que presenta información de solo
lectura.

Botón de Ejecuta una macro que realiza una acción cuando


comando un usuario hace clic en él. Un botón de comando
también se conoce como un botón de comando.

Botón de Permite una única elección dentro de un conjunto


opción limitado de opciones que se excluyen mutuamente;
generalmente está contenido en un marco o cuadro
de grupo. Un botón de opción puede tener uno de
tres estados: activado, desactivado y mixto, lo que
significa una combinación de los estados activado y
desactivado (como en una selección múltiple). Los
botones de opción también se conocen como
botones de radio.

P á g i n a 8 | 54
Nombr Ejemplo Descripción
e del
botón
Cuadro de Muestra una lista de uno o más elementos de texto
lista de entre los cuales puede elegir el usuario. Use un
cuadro de lista para mostrar grandes cantidades de
opciones que varían en número o contenido. Existen
tres tipos de cuadros de lista:

 Un cuadro de lista de selección única permite


solamente una elección. En este caso, un cuadro de
lista se asemeja a un grupo de botones de opción, a
excepción de que un cuadro de lista puede controlar
un gran número de elementos de manera más
eficiente.
 Un cuadro de lista de selección múltiple permite una
elección o elecciones contiguas (adyacentes).
 Un cuadro de lista de selección extendida permite
una elección, elecciones y no contiguas, o
inconexas.

Cuadro Combina un cuadro de texto con un cuadro de lista


combinado para crear un cuadro de lista desplegable. Un
cuadro combinado es más compacto que un cuadro
de lista pero requiere que el usuario haga clic en la
flecha abajo para mostrar una lista de elementos.
Úselo para permitir que un usuario escriba una
entrada o elija solamente un elemento de la lista. El
control muestra el valor actual en el cuadro de texto,
sin importar el modo en que dicho valor se haya
proporcionado.

Botón de Indica un estado, como Sí/No, o un modo, como


alternancia Activado/Desactivado. El botón alterna entre un
estado habilitado o deshabilitado cuando se hace
clic en él.

Control de Aumenta o disminuye un valor, como un incremento


número numérico, una hora o una fecha. Para incrementar
el valor, es necesario hacer clic en la flecha arriba;
para disminuirlo, se debe hacer clic en la flecha
abajo. Generalmente, el usuario también puede
escribir un valor de texto en un cuadro de texto o
una celda asociados.

Barra de Se desplaza por un intervalo de valores cuando el


desplazamient usuario hace clic en las flechas de desplazamiento o
o arrastra el cuadro de desplazamiento. Además, se
puede mover por una página (en un intervalo
preestablecido) de valores haciendo clic en el área
entre el cuadro de desplazamiento y cualquiera de
las flechas de desplazamiento. Generalmente, el
usuario también puede escribir un valor de texto
directamente en un cuadro de texto o una celda
asociados.

P á g i n a 9 | 54
Nombr Ejemplo Descripción
e del
botón
Etiqueta Identifica el propósito de una celda o un cuadro de
texto, o muestra texto descriptivo (como títulos,
leyendas, imágenes) o breves instrucciones.

Imagen Inserta una imagen, como mapa de bits, JPEG o


GIF.

Control de Un objeto rectangular con una etiqueta opcional que


marco agrupa controles relacionados en una única unidad
visual. Generalmente, se agrupan en un control de
marco los botones de opción, las casillas de
verificación o contenido estrechamente relacionado.

Nota: El control ActiveX Frame no está disponible


en la sección de controles ActiveX del
comando Insertar . No obstante, puede agregarlo
desde el cuadro de diálogo Más
controles seleccionando Microsoft Forms 2.0 Fra
me.
Más controles Muestra una lista de controles ActiveX adicionales
disponibles en el equipo que puede agregar a un
formulario personalizado, como el Control de
calendario 12.0 y el Reproductor de
Windows Media. También puede registrar un control
personalizado en este cuadro de diálogo.

Controles de Formulario no Disponibles en Excel 2010


Los controles de formulario han estado presentes por varias versiones de Excel, sin
embargo a partir de Excel 2010 existen algunos controles que ya no pueden ser
utilizados dentro de las hojas como lo son el Campo de texto, el Cuadro combinado de lista y
el Cuadro combinado desplegable, sin embargo podremos alcanzar funcionalidad similar
utilizando controles ActiveX.

P á g i n a 10 | 54
¿Para qué sirve el editor de Visual Basic?

El editor de Visual Basic sirva para crear, ver y modificar las macros existentes. Esto
incluye a las macros que se han creado por medio del uso del grabador de macros, las
que se han escrito manualmente con el lenguaje de programación de VBA, y permite
verificar que cada línea de programación este correctamente escrita y cumpla su
función.

Partes del Editor de VBA


Sus partes más importantes son las siguientes:

1. Barra de Menú: muestra las opciones clásicas como Archivo, Edición, Ver, etc, así
como las propias de Visual Basic como Depuración, Ejecutar y Complementos.
2. Barra de Herramientas: muestra opciones básicas para el uso habitual, como Guardar,
Cortar, Copiar, Pegar así como las propias del editor como Ejecutar, Interrumpir y
Restablecer Macro, Modo de Diseño, Explorador de Proyectos, Ventana de
Propiedades, Examinador de Objetos y Cuadro de Herramientas.
3. Explorador de Proyectos: permite observar los Libros de Excel Activos en el sistema,
así como el número de Hojas en cada uno de estos y los Módulos de programación
activos.
4. Ventana de Propiedades: muestra las características del objeto activo.
5. Ventana de Trabajo: es el área en donde se codifica la Macros, ya sea escribiendo
manualmente en ella el código de programación o usando del Grabador de Macros
desde la hoja de Excel activa.

¿Cómo acceder al editor de VBA?


Para acceder a dicha función existen dos formas:

 La primera es entrando al por la barra de herramientas ,pestaña programador (Excel


2010), donde se activa con los siguientes pasos:

P á g i n a 11 | 54
 Paso 1: Click izquierdo en la flecha encerrada

 Paso 2: Seleccionar la opción “Más Comandos”, luego seleccionar la opción


“Personalizar Cinta de Opciones”, en la columna “Fichas Principales” seleccionar la
opción “Programador”, luego click en “Aceptar”.

 Paso 3: Aparece la pestaña “Programador”, seleccionar dicha pestaña y buscar el


icono de

“Visual Basic”.

 Paso 4: Finalmente aparecerá el editor de Visual Basic, donde se podrá realizar la

creación de macros personalizada.

 La segunda forma es presionando las teclas “Alt+F11” para acceder directamente a


dicho editor.

P á g i n a 12 | 54
Ejercicio I Formulario

1. Vamos a dibujar el siguiente control de formulario (utilice un cuadro combinado) a la


altura de la celda A8.

2. A su vez contamos con la siguiente tabla de datos:

3. Configure el cuadro combinado Pulsando clic derecho en él y elija la opción


FROMATO DE CONTROL:

 Rango de entrada B2:B5


 Vincular con la celda B8

4. Pulsa clic en el botón <ACEPTAR>

P á g i n a 13 | 54
Ejercicio II Formulario

Hoja Datos:

P á g i n a 14 | 54
Ejercicio III Formulario

Hoja Datos:

P á g i n a 15 | 54
Cómo grabar Macros en Excel

Si no tienes muchos conocimientos aún sobre VBA pero quieres automatizar algunas
tareas en Excel, puedes crear macros utilizando la Grabadora de macros, lo cual no
requerirá que tengas conocimiento de programación.
Existen dos maneras de iniciar con la grabación de una macro en Excel. Lo podemos
hacer desde la barra de estado y también desde la ficha Programador.

Iniciar la grabación desde la barra de Estado


Para iniciar con la grabación de una macro en Excel puedes pulsar el botón Grabar
macro que se encuentra en la parte inferior izquierda de la barra de estado de Excel.

Iniciar la grabación desde la Ficha Programador

Si tienes activada la ficha Programador entonces podrás también iniciar la grabación de


una macro con el comando Grabar macro que se encuentra dentro del grupo Código.

Cualquiera de los dos métodos mencionados anteriormente hará que se muestre el


cuadro de diálogo Grabar macro donde especificaremos el Nombre de la macro así
como algún Método abreviado que deseemos asignar a la macro.

P á g i n a 16 | 54
Después de pulsar el botón Aceptar, todas las acciones que realices en Excel serán
guardadas como parte de la macro que está siendo grabada.

Detener la grabación de la Macro


Para detener la grabación de la macro debes hacer clic en el comando Detener
grabación que se encuentra en la ficha Programador o también puedes pulsar el botón
que se encontrará en la barra de estado.

Ejecutar una Macro grabada


Podemos ver las macros que hemos grabado con el comando Macros que se encuentra
en la ficha Programador. Al pulsar dicho botón se abrirá el cuadro de diálogo Macros y
deberemos pulsar el botón Ejecutar para iniciar con la ejecución de cada una de las
instrucciones de la macro.

Editar una Macro previamente grabada


La edición de una macro de Excel se puede hacer solamente a través de código VBA.
Para poder editar una macro debes pulsar el botón Macros que se encuentra en la ficha

P á g i n a 17 | 54
Programador y dentro del cuadro de diálogo Macro elegir aquella macro que necesites
editar:

Al pulsar el botón Modificar se abrirá el Editor de Visual Basic con el código de la macro.
Debemos tener mucho cuidado con el código de una macro porque cualquier edición
incorrecta puede impedir el buen funcionamiento de la misma.

Eliminar una Macro


Para eliminar una macro debes pulsar el botón Macros, posteriormente seleccionar la
macro que será eliminada y finalmente pulsar el botón Eliminar.

P á g i n a 18 | 54
Establecer Seguridad de Macros
La seguridad es un tema importante al hablar de macros en Excel. Si abres algún archivo
que contenga una macro maliciosa puedes causar algún tipo de daño al equipo. De
manera predeterminada Excel no permite ejecutar macros automáticamente.

Sin embargo, si estás creando tus propias macros y deseas remover esta protección
porque sabes que no existe código malicioso, entonces puedes modificar la
configuración para habilitar todas las macros. Para hacerlo debes seguir los siguientes
pasos.

Haz clic en la ficha Archivo y posteriormente en Opciones. Dentro del cuadro de diálogo
mostrado selecciona la opción Centro de confianza y posteriormente pulsa el
botón Configuración del centro de confianza. Se mostrará el cuadro de diálogo Centro
de confianza.

Dentro de la sección Configuración de macros selecciona alguna de las opciones


disponibles.

 Deshabilitar todas las macros sin notificación. Deshabilita las macros y permite
ejecutar solamente aquellas que estén almacenadas en un lugar confiable. Los
lugares confiables se configuran en la sección Ubicaciones de confianza del
mismo cuadro de diálogo.

 Deshabilitar todas las macros con notificación. Muestra una alerta de seguridad
advirtiendo sobre la intención de ejecutar una macro de manera que se pueda
decidir si se desea ejecutar. Esta es la opción predeterminada de Excel.

 Deshabilitar todas las macros excepto las firmadas digitalmente. Solamente se


podrán ejecutar las macros que están firmadas digitalmente.

 Habilitar todas las macros. Permite ejecutar todas las macros sin enviar alguna
notificación al usuario. Esta opción es útil si se ejecutan múltiples macros

P á g i n a 19 | 54
totalmente confiables. Esta opción es la que corre los mayores riesgos al ejecutar
una macro de una fuente desconocida.

Una vez seleccionada la opción deseada se debe pulsar el botón Aceptar para hacer los
cambios permanentes.

Ejemplo
Para observar los códigos de una macro debemos seguir los pasos:

1. En primer lugar seleccione la celda B5 antes de empezar la grabación de la Macro,


se visualiza:

2. Presione el Botón Grabar Macro del grupo Código MS Excel muestra el cuadro de
Dialogo Grabar Macro:

3. Ingrese un nombre de la macro por ejemplo Saludo

4. En la opción Método Abreviado escriba la letra s, por lo tanto la macro se llamara


con Control + s

5. En Guardar macro en: Seleccione en el lugar en donde desea guardar la macro, por
ejemplo Este libro.

P á g i n a 20 | 54
6. En Descripción puede agregar una descripción de lo que hace la macro, este punto
es opcional. Solo le sirve para que usted recuerde acerca de lo que hace la macro, pues
este código no es interpretado por el compilador.

7. Presione el botón Aceptar. Excel inicia la grabación de la Macro

8. Trasládese a la celda B1 y escriba Hola mundo, después presione Enter para


aceptar el valor en la celda.

9. Pare la grabación de la macro presionando el botón Detener Grabación del grupo


Código. Excel ha grabado los pasos y ha generado un código.

10. Para visualizar el código generado, presione la tecla Alt + la tecla de función F11
(Alt + F11), o de un clic derecho en la hoja de cálculo:

11. Seleccione la opción Ver código. También puede acceder al grupo Código, al dar
clic en la opción Visual Basic

12. Excel nos traslada al Editor de Visual Basic. Se visualiza:

P á g i n a 21 | 54
13. Active los siguientes cuadros o ventanas:

• De clic en el Menú Ver y elija la opción Explorador de Proyectos

• De clic en el Menú Ver y elija la opción Ventana Propiedades

14. Del cuadro Proyecto de doble clic en Módulos o simplemente presione el signo de
+ que aparece en la opción Módulos. Se activara debajo de Módulos la Opción
Modulo1.

15. De doble clic en Modulo1. Se mostrara en el Editor de Visual Basic el código de


la macro que grabamos de la siguiente forma:

16. Que es lo que significa esto nos preguntaremos asombrados, a continuación se da


una explicación de lo que ha hecho Excel:

• Sub y End Sub indican el inicio y el final del procedimiento de la macro saludo

• Todo lo que aparece con un apóstrofe ´ indica que no se tomara en cuenta que
es solo texto o comentarios y ese texto aparece en color verde.

• Range("B1").Select Indica que lo primero que hicimos al grabar la macro fue


trasladarnos a la celda B1. La orden Range nos permite trasladarnos a una
celda.

• ActiveCell.FormulaR1C1 = "Hola mundo" Esto indica que se escribirá en la


celda en que se encuentra el valor de texto Hola mundo. Todo lo que aparece
entre comillas siempre será un valor de texto. La orden

ActiveCell.FormulaR1C1 nos permite escribir un valor en la celda activa. Para


comprender alteraremos el código dentro del editor de Visual Basic.

P á g i n a 22 | 54
17. Al alterar el código y cuando regrese a Excel y ejecute la macro con Control + s
hará lo siguiente:

En B1 escribirá Hola mundo

En C1 escribirá Bienvenidos al curso de Excel

Al alterar el código y cuando regrese a Excel y ejecute la macro con Control + s hará

En B1 escribirá Hola mundo

En C1 escribirá Bienvenidos al seminario de Excel.

Se visualiza:

Al alterar el código y cuando regrese a Excel y ejecute la macro con Control + s hará:

En B1 escribirá Hola mundo.

En C1 escribirá Bienvenidos al seminario de Excel.

P á g i n a 23 | 54
Adicionar un botón en la hoja Excel para ejecutar la macro

Practica
Genera las siguientes Macros:

 Grabe una Macro que se active con Control + b y que esta macro permita abrir
un archivo.

 Grabe una Macro que inserte una tabla con datos.

 Grabe una Macro que abra un archivo existente.

 Grabe una Macro que abra un nuevo archivo.

 Grabe una Macro que inserte un logotipo.

 Grabe una Macro que ordene alfabéticamente una lista de nombres.

 Grabe una Macro que imprima un formulario.

P á g i n a 24 | 54
Códigos más Comunes

Trasladarse a una Celda

Range("A1").Select

Escribir en una Celda

Activecell.FormulaR1C1="Paty Acosta"

Letra Negrita

Selection.Font.Bold = True

Letra Cursiva

Selection.Font.Italic = True

Letra Subrayada

Selection.Font.Underline = xlUnderlineStyleSingle

Centrar Texto

With Selection .HorizontalAlignment = xlCenter End With

Alinear a la izquierda

With Selection .HorizontalAlignment = xlLeft End With

Alinear a la Derecha

With Selection

.HorizontalAlignment = xlRight

End With

Tipo de Letra(Fuente)

With Selection .Font

.Name = "AGaramond"

End With

Tamaño de Letra (Tamaño de Fuente)

With Selection.Font .Size = 15 End With

Copiar

Selection.Copy

P á g i n a 25 | 54
Pegar

ActiveSheet.Paste

Cortar

Selection.Cut

Ordenar Ascendente

Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _


OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Orden Descendente

Selection.Sort Key1:=Range("A1"), Order1:=xlDescending, Header:=xlGuess, _


OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

Buscar

Cells.Find(What:="Paty Acosta", After:=ActiveCell, LookIn:=xlFormulas, LookAt


_ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate

Insertar Fila

Selection.EntireRow.Insert

Eliminar Fila

Selection.EntireRow.Delete

Insertar Columna

Selection.EntireColumn.Insert

Eliminar Columna

Selection.EntireColumn.Delete

Abrir un Libro

Workbooks.Open Filename:="C:\Mis documentos\miarchivo.xls"

Grabar un Libro

ActiveWorkbook.SaveAs Filename:="C:\Mis documentos\tauro.xls", FileFormat _


:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False

P á g i n a 26 | 54
Formularios en VBA

Los formularios en VBA no son más que un cuadro de diálogo de Excel donde
podremos colocar controles que nos ayudarán a solicitar información del usuario.
Podremos colocar cajas de texto, etiquetas, cuadros combinados, botones de comando,
etc.

Crear un Formulario en Excel


Los formularios de Excel son creados desde el Editor de Visual Basic donde debemos
seleccionar la opción de menú Insertar y posteriormente la opción UserForm.

Inmediatamente se mostrar un formulario en blanco y de igual manera podrás observar


el Cuadro de herramientas:

Si no ves el Cuadro de herramientas puedes seleccionar el menú Ver y la opción Cuadro


de herramientas.

P á g i n a 27 | 54
Agregar Controles al Formulario
Para agregar un control al formulario debes seleccionarlo del Cuadro de herramientas
y dibujarlo sobre el formulario. En mi formulario he agregado etiquetas y cuadros de
texto así como un par de botones de comando:

El texto de las etiquetas se modifica en la propiedad llamada Caption. Para realizar este
cambio solamente selecciona el control y se mostrará la ventana de Propiedades donde
podrás hacer la modificación. De igual manera el texto desplegado en los botones de
comando se modifica en su propiedad Caption.

Código para el Botón Cancelar


El botón cancelar cerrará el formulario sin guardar la información capturada en ningún
lugar. El código que debemos utilizar es el siguiente:

Private Sub CommandButton2_Click()


Unload Me
End Sub

Para agregar este código puedes hacer doble clic sobre el control. La sentencia “Unload
Me” cerrará el formulario.

Código para el Botón Aceptar


A diferencia del botón Cancelar, el botón Aceptar colocará los datos de las cajas de
texto en las celdas A1, B1 y C1. El código utilizado es el siguiente:

Private Sub CommandButton1_Click()

Worksheets("Hoja1").Range("A1").Value = Me.TextBox1.Value
Worksheets("Hoja1").Range("B1").Value = Me.TextBox2.Value
Worksheets("Hoja1").Range("C1").Value = Me.TextBox3.Value

End Sub

Al pulsar el botón Aceptar se transferirán los valores de los controles TextBox hacia las
celdas de la Hoja1.

P á g i n a 28 | 54
Botón para abrir Formulario
Para facilitar la apertura del formulario puedes colocar un botón ActiveX en la hoja con
el siguiente código:

Private Sub CommandButton1_Click()


UserForm1.Show
End Sub

Probar el Formulario
Observa cómo cada uno de los botones realiza la acción correcta al pulsarlos:

Propiedades comunes de UserForms y Controles

En este capítulo de nuestro Curso de VBA y macros en Excel, seguiremos


continuaremos con el ya solicitado tema de Formulario. Veremos en esta ocasión el
tema de las propiedades más comunes usadas en UserForms y Controles Activex.
Las siguientes propiedades pueden ser usadas modificadas directamente desde
la Ventana Propiedades y modificándolas desde VBA. A continuación, una lista de
propiedades comunes, aunque aclaro, existen muchas más:

 Name.
 Caption.
 Accelerator.
 Value.
 Enabled.
 Visible.
 TabIndex.
 Height.
 Width.

P á g i n a 29 | 54
Propiedad Name
Esta propiedad nos permite identificar a los controles para poder manipularlos
desde VBA. Cada control tiene un nombre predefinido, como por ejemplo un Cuadro
de texto tendrá el nombre TextBox1, pero nosotros lo podemos cambiar
a txtNombre o el nombre que deseemos, aunque se sugiere que sea descriptivo acerca
de la función que tendrá el control.

Figura 1. Propiedad Name en Controles ActiveX y Formularios VBA.

En el siguiente ejemplo mostramos el contenido del TextBox1.

Private Sub UserForm_Initialize()

MsgBox Me.txtNombre.Value

End Sub

Propiedad Caption
Con esta propiedad haremos referencia al título o etiqueta que tendrá un Control.
Desde un UserForm, pasando por un TextBox, la mayoría de los controles tienen
un Caption, que será el texto que se mostrará en cada Control.

P á g i n a 30 | 54
Figura 2. Propiedad Caption en UserForm VBA.

En la siguiente línea modificaremos el título de la venta del UserForm.

Private Sub UserForm_Initialize()

Me.Caption = "EXCEL_AVANZADO"

End Sub

Propiedad Accelerator
Usaremos la propiedad Accelerator cuando deseemos activar un Control o ejecutar
un procedimiento que tenga asociado a su evento Click. Si por ejemplo tenemos un
botón con el Caption “Prueba” y le asignamos la letra P como tecla aceleradora,
cada que presionemos en nuestro teclado la combinación Alt + P, se activará o
ejecutará una macro asociada a ese control.
Noten en la siguiente imagen que la letra P se subraya para identificar la letra
aceleradora.

Figura 3. Propiedad Accelerator en CommandButton en Formulario VBA.

P á g i n a 31 | 54
Propiedad Value
Algunos Controles permiten guardar valores, como por ejemplo TextBox o
ComboBox. La propiedad Value nos permitirá guardar un valor para después volcarlo
en alguna celda, otro Control o usarlo para algún cálculo.
Por ejemplo, los valores de un CheckBox son TRUE o FALSE.

Propiedad Enabled
En ocasiones vamos a necesitar inhabilitar controles, en base al contenido de otro
control o como medida validación para seguir pasos al capturar valores. Para lo anterior,
usaremos la propiedad Enabled, que será TRUE en caso de que
deseemos habilitar un Control o FALSE para inhabilitarlo.

Figura 4. Propiedad Enabled para inhabilitara controles en UserForms con VBA.

Propiedad Visible
Con esta propiedad tendremos controles ocultos y mostrarlos en base a una
condición. Si Visible es TRUE el control se muestra y con FALSE se oculta.

P á g i n a 32 | 54
Figura 5. Propiedad Visible para mostrar controles en Formulario VBA.

Private Sub CheckBox1_Click()

If Me.CheckBox1.Value = True Then


Me.OptionButton1.Visible = False
ElseIf Me.CheckBox1.Value = False Then
Me.OptionButton1.Visible = True
End If

End Sub

Propiedad TabIndex
La propiedad TabIndex nos ayudará a tener un orden de activación de controles, es
decir, al presionar la tecla Tabulador iremos activando o dándole foco a los
controles. El índice menor es 0 y el mayor dependerá de los controles que
tengamos en el Formulario.

Propiedad Height
Con esta propiedad vamos a modificar y manipular el alto de un Formulario o un
Control.

Propiedad Width
Con esta propiedad vamos a modificar y manipular el ancho de un Formulario o
Control.

P á g i n a 33 | 54
Tipos de variables en VBA

En VBA existen una gran cantidad de variables. Aquí repasaremos los principales tipos
y su alcance.

Principales Tipos de Variables en VBA

Tipo Entero
Para una variable numérica de valores de -32768 a 32767.
Para ello usaremos el código

Dim NombreVariable as Integer

Si tenemos almacenado un valor con algún tipo de variable que no sea de tipo Integer
podremos convertirlo a Integer mediante el comando CInt. En la siguiente línea podemos
ver el uso de este comando con un ejemplo sencillo.

Sub Convertir_a_integer()
n = 9.56
MsgBox CInt(n)
End Sub

El mensaje en pantalla devolverá el valor de 10, es decir, el redondeo del valor de la


variable n.

Tipo Long
El tipo long de variable es para valores enteros positivos o negativos pero con la
diferencia de que puede almacenar valores mucho mayores, en concreto entre -
2.147.483.648 y 2.147.483.648. La sintaxis de este tipo de variables es:

Dim NombreVariable as Long

Si queremos convertir un valor a tipo Long usaremos el método CLng(). En el ejemplo


siguiente, vamos a convertir un número decimal muy grande en una variable tipo Long.

Sub Convertir_a_Long()
n = 100000000.53
MsgBox CLng(n)
End Sub

Tipo Single
Para almacenar valores numéricos decimales aunque si requerimos una mayor
precisión, usaremos variables tipo Double.
El código para declarar variables tipo Single es:

Dim NombreVariable as Single

P á g i n a 34 | 54
Si, como en los casos anteriores, queremos convertir una variable a tipo Single
usaremos el método CSng() como vemos en el siguiente ejemplo:

Sub Convertir_a_Single()
n = 120.534253231
MsgBox CSng(n)
End Sub

Tipo String
Para almacenar valores de cadenas de texto, es decir, uniones de cualquier tipo de
caracter ya sea numérico o no numérico.
El código para declarar este tipo de variables es:

Dim NombreVariable as String

Para asignar el valor a este tipo de variables deberemos poner la cadena de texto (o de
los caracteres que sean) entre comillas como puede verse en el siguiente ejemplo:

Sub Ejemplo()
Dim Nombre_pais As String
Nombre_pais= "Brasil"
End Sub

Si tenemos un valor que no es tipo String, podremos convertirlo mediante el métido


CStr() como puede verse en el siguiente ejemplo en el que la variable n almacena un
número.

Sub Convertir_a_String()
Dim st As String
n = 53
st = CStr(n)
End Sub

El resultado del código anterior guardará en la variable st el valor de 53 como tipo String.

Tipo Verdadero o Falso


Nos permite almacenar valores de variables del tipo verdadero o falso.
El código para su declaración es:

Dim NombreVariable as Boolean

Tipo Variant
Este tipo nos permite almacenar cualquier tipo de información ya sea numérica, de texto
o del tipo verdadero o falso o cualquier otro que se nos ocurra. En definitiva, cuando no
sabemos qué tipo de variable va a tener usaremos el tipo Variant, donde entran todos
los tipos posibles. El inconveniente es que ocupa una gran cantidad de memoria.
El código para su declaración es:

Dim NombreVariable as Variant

P á g i n a 35 | 54

También podría gustarte