VISUAL BASIC DE EXCEL
¿Qué es y para qué sirve Visual basic de excel?
Visual Basic para Aplicaciones (VBA) es un lenguaje de programación de Office con el que es posible crear aplicaciones nuevas y funciones personalizadas para ahorrar tiempo en programas como Excel. En este sentido, tiene como principal virtud la capacidad de automatizar casi todas las operaciones de esta aplicación, algo que lo convierte en uno de los mejores recursos a la hora de eliminar tareas repetitivas. No obstante, todo depende de la creatividad del usuario y de sus conocimientos.
Para programar con Visual Basic en Excel, es importante tener claro cuándo es conveniente utilizar este lenguaje. Es posible que haya ocasiones en las que exista una opción más sencilla para alcanzar el objetivo requerido. En líneas generales, VBA es conveniente utilizarlo cuando hay que hacer tareas repetitivas en Excel o cálculos muy complicados de una forma manual.
En estas situaciones, sería conveniente programar una determinada tarea, o varias, para poder ejecutarla con un simple botón o mediante la configuración de un comando. De esta manera, con la escritura en código de tareas concretas, es posible conseguir el objetivo deseado: automatizar pasos y realizar tareas complejas en Excel aumentando la eficiencia del trabajo.
1. FORMULARIO
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.
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.
Botón para abrir el 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

2. DISEÑOS
Todo desarrollador de aplicaciones gusta de añadir su toque personal a las aplicaciones que desarrolla. Y los usuarios de Excel no son la excepción. En Excel podemos darle nuestro toque a tablas, formularios, cuadros de mando, tablas dinámicas, etc.[/caption]
Para modificar el diseño de nuestros formularios haremos uso de las Propiedades de cada Control. Por ejemplo, recorreremos cada Control del formulario y le asignaremos un Color blanco, así como asignarles la propiedad Flat, para que se vean más ad hoc al diseño de los Formularios de Windows.
3. CUADRO DE HERRAMIENTAS
El cuadro de herramientas en VBA, es la ventana que contiene el conjunto de objetos que se pueden añadir a los formularios.Mostrar el cuadro de herramientas VBA
El cuadro de herramientas de puede encontrar visible cuando tenemos un formulario, debe aparecer flotando cerca al mismo, sin embargo si no esta disponible podemos activarlo de cualquiera de las siguientes formas:1) En el Editor de Visual Basic, seleccionar Ver, luego la opción Cuadro de herramientas
Añadir controles al formulario
Para utilizar los controles existentes en el cuadro de herramientas, tenemos dos alternativas:
1) Hacer clic sobre el botón del Cuadro de herramientas que corresponde al control que se quiere añadir, y después se hace clic dentro del formulario.
2) También se puede hacer clic sobre el control y después arrastrar el puntero del ratón hasta el cuadro de diálogo y especificar las dimensiones para el control.
Cuando se añade un control nuevo, se le asigna un nombre que contiene el tipo control unido a un correlativo de ese tipo de control. Por ejemplo, si se añade un Botón de comando a un cuadro de diálogo vacío, se llama CommandButton1, y si se añade un segundo Botón de comando, este tendrá como nombre CommandButton2.
Controles de formulario en Excel
En el cuadro de herramientas se encuentran por defecto los siguientes controles:
Casilla de Verificación
Un control casilla de verificación (CheckBox en VBA) , tambien llamada "Casilla" en algunas versiones de Excel, permite ofrecer al usuario una opción binaria: Sí o No, Verdadero o Falso, activar o desactivar, y simlares.
Cuando la casilla de verificación se encuentra seleccionada le corresponde el valor Verdadero, y si no esta seleccionada le corresponde el estado Falso.
Cuadro Combinado
El cuadro combinado (ComboBox en VBA) permite mostrar una lista desplegable de elementos, y cuando la lista no esta desplegada solo se muestra un elemento (el elemento seleccionado).
Botón de Comando
Este control (CommandButton en VBA) permite la adición de botones al formulario, estos botones al ser añadidos no realizan ninguna acción, las acciones que deseamos que cada botón realice deben ser especificada por medio de comandos en VBA.
Botón Marco
Un control Marco (Frame) se usa para agrupar otros controles, esta agrupación puede estar motivada por un tema estético, o por que se desea mostrar que los controles incluidos en el marco corresponden a un grupo de opciones.
Imagen
Un control Imagen (Image en VBA) se usa como contenedor una imagen gráfica. Al adicionar una imagen, esta se guarda como parte del libro de trabajo, de esta forma al enviar el archivo a cualquier otro equipo no es necesario incluir una copia de la imagen.
Se recomienda que la imagen esta previamente editada antes de añadirla.
Etiqueta
Un control Etiqueta (Label en VBA) simplemente presenta un texto en el espacio en que se coloque este objeto.
Cuadro de Lista
El Cuadro de lista (ListBox en VBA) presenta una lista de elementos donde el usuario puede seleccionar uno (o múltiples elementos) , a diferencia del "cuadro combinado" (combobox), se puede puede observar de forma visible uno o mas elementos que forman parte de la lista, de acuerdo al tamaño del combobox.
Página Múltiple
La Página múltiple (MultiPage) permite crear fichas, de forma predeterminada consta de dos páginas (fichas), para añadir páginas, se hace clic con el botón derecho del ratón sobre una ficha y se selecciona "Nueva página" desde el menú contextual.
Botón de Opción
Los Botones de opción (OptionButton en VBA) son muy útiles cuando el usuario necesita seleccionar entre un pequeño número de elementos. Cuando se selecciona uno de los botones, los otros botones del grupo no pueden estar seleccionados.
Botón de Número
Un Botón de número (SpinButton) permite al usuario seleccionar un valor haciendo clic sobre una de las dos flechas que contiene; una flecha incrementa el valor y la otra lo disminuye.
Barra de Desplazamiento
Una Barra de desplazamiento (ScrollBar) es similar al "Botón de número". La diferencia estriba en que el usuario puede desplazarse con el botón Barra de desplazamiento para cambiar el valor del control en incrementos más amplios.
Botón de Alternar
Un control Botón de alternar (ToggleButton) posee dos estados: activado y desactivado. Al hacer clic sobre el mencionado botón, se alternan estos dos estados y el botón cambia de apariencia. Su valor puede ser o bien Verdadero (presionado) o bien Falso (no presionado).
Añadir controles de VBA
Además de los controles mostrados se pueden añadir muchos otros al cuadro de herramientas, un conocido control que estaba disponible en versiones iniciales era el DatePicker, el cual permitía seleccionar una fecha, actualmente ese control no esta disponible por defecto, pero lo puedes tener como formulario (y usar de forma muy sencilla), para ello revisa el artículo: Datepicker VBA
Pasos para añadir controles al cuadro de herramientas
Para añadir algunos controles en el cuadro de herramientas, debemos hacer click con el botón derecho del mouse en la zona de controles, y elegir la opción "Controles adicionales".
En la ventana controles adicionales, se encuentran los controles que están instalados en nuestro equipo, solo debemos seleccionar el que necesitamos activar, presionar "aceptar", y listo, el control ahora estará disponible dentro del cuadro de herramientas.
4. PLANILLAS BÁSICAS
5. DISEÑO DE CUADROS COMBINADOS
1. En la pestaña Desarrollador , haga clic en Insertar.
2. En el grupo Controles ActiveX, haga clic en Cuadro combinado.

3. Arrastre un cuadro combinado en su hoja de trabajo.
Nota: puede cambiar el nombre de un control haciendo clic derecho en el control (asegúrese de que el Modo de diseño esté seleccionado) y luego haciendo clic en Propiedades. Por ahora, dejaremos ComboBox1 como el nombre del cuadro combinado.
Cree un evento abierto de libro de trabajo. Excel VBA ejecutará el código agregado al evento de apertura del libro de trabajo cuando abra el libro de trabajo.
4. Abra el Editor de Visual Basic .
5. Haga doble clic en Este libro en el Explorador de proyectos.
6. Elija Libro de trabajo en la lista desplegable de la izquierda y elija Abrir en la lista desplegable de la derecha.
.webp)
7. Para agregar elementos al cuadro combinado, agregue las siguientes líneas de código al Evento de apertura del libro de trabajo:
With Sheet1.ComboBox1 .AddItem "Paris" .AddItem "New York" .AddItem "London"End WithComboBox1.ClearComboBox1.Value = ""
Nota: use Sheet2 si su cuadro combinado está ubicado en la segunda hoja de trabajo, Sheet3 si su cuadro combinado está ubicado en la tercera hoja de trabajo, etc. Si usa estas líneas de código fuera del evento Workbook Open, es posible que desee agregar las líneas de código a continuación antes de estas líneas de código. La primera línea de código borra el cuadro combinado. De esta manera, sus elementos no se agregarán varias veces si ejecuta su código más de una vez. La segunda línea de código borra su propia elección.
8. Para vincular este cuadro combinado a una celda, haga clic derecho en el cuadro combinado (asegúrese de que el modo de diseño esté seleccionado) y haga clic en Propiedades. Complete D2 para LinkedCell.
Nota: también vea la propiedad ListFillRange para llenar un cuadro combinado con un rango de celdas.
9. Guarde, cierre y vuelva a abrir el archivo de Excel.
Resultado:

Aunque en algunas situaciones puede ser útil colocar directamente un cuadro combinado en su hoja de trabajo, un cuadro combinado es particularmente útil cuando se coloca en un formulario de usuario .
6. LISTA DE TEXTOS
7. FORMULARIOS CON PORCENTAJES
8. VACIADO DE FORMULARIOS EN LAS HOJAS ELECTRÓNICAS
Ocasionalmente puede tener la necesidad de eliminar un módulo o formulario que ya no necesita. Haga clic con el botón derecho del ratón en el módulo o formulario que desea eliminar para mostrar el menú contextual del botón derecho.
Haga clic en Eliminar (en este caso Módulo2) o Haga clic en el menú Archivo y, a continuación, en Eliminar (Módulo2 ).
Aparecerá un cuadro de advertencia preguntando si desea Exportar el módulo o formulario antes de eliminarlo. Exportar el módulo o formulario le permite guardarlo como un archivo individual para utilizarlo en otro proyecto de Excel en otro momento.
La mayoría de las veces, cuando eliminas un módulo o formulario es porque no lo necesitas, así que haz clic en No.
9. CONVERTIDORES DE FORMULARIOS
10.MÓDULOS
¿Qué es un módulo de VBA?
¿Realmente es importante saber qué es un módulo? La respuesta es no. Pero es muy útil saber cómo se puede organizar la información dentro de VBA. Pero, ¿por qué es útil?. A la hora de hacer un pequeño programa en Excel con unas cuantas Macros puede ser bueno organizar la información en diferentes módulos.
¿QUÉ ES UN MÓDULO?
Un módulo es dónde se escribe el código en VBA. Un proyecto de VBA es un conjunto de módulos (o uno sólo) dónde se escriben las diferentes macros y funciones de VBA. Los módulos nos permiten organizar el código de VBA en diferentes archivos dentro de VBA de manera rápida, fácil e intuitiva.
¿CÓMO ACCEDER A UN MÓDULO DE VBA?
Para acceder a un módulo de VBA primero habrá que acceder al proyecto y después elegir el módulo que se quiere editar.
Para acceder al editor de VBA puedes hacer click en Alt + F11 y accederás a una pantalla como la siguiente.
En esta pantalla, si hubiera más de un proyecto veríamos un listado a la izquierda de los posibles VBAProjects a elegir. Seleccionando uno de ellos podríamos ver después la carpeta módulo y haciendo click sobre uno de ellos entraríamos a ver el código del módulo seleccionado.
Para acceder a un módulo de VBA primero habrá que acceder al proyecto y después elegir el módulo que se quiere editar.
Para acceder al editor de VBA puedes hacer click en Alt + F11 y accederás a una pantalla como la siguiente.
En esta pantalla, si hubiera más de un proyecto veríamos un listado a la izquierda de los posibles VBAProjects a elegir. Seleccionando uno de ellos podríamos ver después la carpeta módulo y haciendo click sobre uno de ellos entraríamos a ver el código del módulo seleccionado.
EJEMPLO DE MÓDULO DE VBA
Pongamos un ejemplo. Tenemos pensado hacer unas cuantas macros para un programita que estamos creando. Podrían ser la siguientes:
- 1.Abrir un documento
- 2.Limpiar cierta información
- 3.Pegar información de una parte del documento a otra.
- 4.Crear una nueva hoja con cierta información.
- 5.Aplicar formato a la nueva hoja creada.
- 6.Eliminar la información copiada.
- 7.Eliminar la hoja que hemos creado.
- 1.CARGAR
- 2.OPERATIVA
- 3.RESETEO
Como vemos en el listado anterior, tenemos información de 2 o 3 tipos diferentes relacionadas con la actividad de nuestra hoja de Excel. Las macros de la 1 a la 3 pueden ser la de cargar datos. Las macros 4 y 5 serían de operar con la nueva información. Las macros 6 y 7 son las de dejar la hoja en su estado inicial.
Para mi en este caso sería útil tener 3 módulos (especie de carpetas donde se guarda la información.
Los módulos yo los organizaría de la siguiente manera:
Este es un ejemplo pero depende de la cantidad de macros y la operativa que usemos pueden ser más o menos módulos.
Pongamos un ejemplo. Tenemos pensado hacer unas cuantas macros para un programita que estamos creando. Podrían ser la siguientes:
- 1.Abrir un documento
- 2.Limpiar cierta información
- 3.Pegar información de una parte del documento a otra.
- 4.Crear una nueva hoja con cierta información.
- 5.Aplicar formato a la nueva hoja creada.
- 6.Eliminar la información copiada.
- 7.Eliminar la hoja que hemos creado.
- 1.CARGAR
- 2.OPERATIVA
- 3.RESETEO
Como vemos en el listado anterior, tenemos información de 2 o 3 tipos diferentes relacionadas con la actividad de nuestra hoja de Excel. Las macros de la 1 a la 3 pueden ser la de cargar datos. Las macros 4 y 5 serían de operar con la nueva información. Las macros 6 y 7 son las de dejar la hoja en su estado inicial.
Para mi en este caso sería útil tener 3 módulos (especie de carpetas donde se guarda la información.
Los módulos yo los organizaría de la siguiente manera:
Este es un ejemplo pero depende de la cantidad de macros y la operativa que usemos pueden ser más o menos módulos.









Comentarios
Publicar un comentario