VBA: abrir y usar el editor de Visual Basic (VBE) en Excel

Este tutorial le mostrará cómo abrir y programar en el Editor de Visual Basic en VBA.

Abrir el editor de Visual Basic

Hay algunas formas de acceder al Editor de Visual Basic (VBE) en Excel.

prensa Alt + F11 en tu teclado.

O

Hacer clic Ver> Macros> Ver macros. Desde aqui puedes Editar una macro existente o Crear uno nuevo. Cualquiera de las opciones abre el VB Editor.

O

Desarrollador> Visual Basic

Nota: Si no ve la cinta de desarrollador, deberá habilitarla.

Para habilitar la cinta del desarrollador

Clickea en el Expediente pestaña en la cinta de opciones y vaya a Opciones. En el Personalizar la cinta opciones, marque la Desarrollador casilla de verificación. Esto está desactivado de forma predeterminada, por lo que deberá activarlo para ver la pestaña en la cinta.

Hacer clic OK.

La pestaña Desarrollador aparecerá en la cinta principal. Haga clic en Visual Basic al comienzo de la cinta para acceder al Editor de Visual Basic.

Comprensión de la pantalla VBE

La pantalla VBE se muestra en el gráfico a continuación.

El explorador de proyectos

El Explorador de proyectos le permite ver cómo está organizado el proyecto en el que está trabajando. Puede ver cuántos módulos y formularios se almacenan en el proyecto y puede navegar entre estos módulos y formularios. Un módulo es donde se almacena el código en su libro de trabajo, cuando graba una macro, se almacenará en un módulo estándar, que de forma predeterminada se llamará "Módulo 1'.

Cada una de las hojas de trabajo en su archivo de Excel también tiene un módulo detrás, al igual que el libro en sí. Cuando inserta una nueva hoja en el libro de trabajo a través de la pantalla principal de Excel, verá aparecer un módulo de hoja adicional en el Explorador de proyectos.

Haga doble clic en un módulo para pasar al código de ese módulo.

También puede hacer clic en el menú Ventana en la barra de herramientas y seleccionar el módulo allí para pasar al código de ese módulo.

Tipo de módulos

Los módulos están organizados en 5 tipos diferentes.

  1. Módulos estándar - la mayor parte de su código irá a este tipo de módulo. Cuando graba una macro, se coloca en un módulo estándar. Cuando escribe un procedimiento general para utilizarlo en todo su libro de trabajo, normalmente también se incluye en un módulo estándar.
  2. Módulos del libro de trabajo - este módulo contiene el código que es único para ese libro de trabajo individual. La mayor parte del código en este tipo de módulos se conoce como EVENTOS. Un evento puede ocurrir cuando se abre o se cierra un libro, por ejemplo. El módulo también puede contener código escrito por usted mismo y utilizado por los eventos.
  3. Módulos de hoja - este módulo contiene el código que es exclusivo de esa hoja individual. Pueden ocurrir cuando se hace clic en una hoja, por ejemplo (el Haga clic en Evento) o cuando cambia datos en una celda. Este módulo también puede contener código escrito por usted mismo y llamado por los eventos.
  4. Módulos de formulario : este es el módulo detrás de un formulario personalizado que puede crear. Por ejemplo, puede crear un formulario para guardar los detalles de una factura, con un botón Aceptar, el código detrás del botón (el evento de clic) contiene el código que se ejecutará cuando se haga clic en el botón.
  5. Módulos de clase - este módulo se utiliza para crear objetos en tiempo de ejecución. Los programadores avanzados de VBA utilizan el módulo de clase y se tratará en una etapa posterior.

Insertar un módulo o formulario en su código

Para insertar un nuevo módulo en su código, haga clic en el Insertar en la barra de menú y haga clic en Módulo.

O haga clic en el Insertar módulo botón que encontrará en la cinta estándar.

Para insertar un nuevo formulario de usuario en su código, seleccione el Formulario de usuario opción.

Aparecerá un nuevo formulario de usuario en el Explorador de proyectos y se mostrará en la ventana de código a la derecha.

También puede insertar un Módulo de clase

Se utiliza un módulo de clase para insertar objetos en su proyecto VBA.

Eliminar un módulo o formulario del Explorador de proyectos

Haga clic con el botón derecho en el módulo o formulario que desea eliminar para mostrar el menú de acceso directo del botón derecho.

Hacer clic Eliminar (en este caso UserForm1… )

O

Clickea en el Expediente menú, y luego haga clic en Eliminar (UserForm1).

Aparecerá un cuadro de advertencia preguntándole si desea exportar el formulario o módulo antes de eliminarlo. Exportar el formulario o módulo le permite guardarlo como un archivo individual para usarlo en un proyecto de Excel diferente en otro momento.

La mayoría de las veces, cuando elimina un módulo o formulario es porque no lo necesita, así que haga clic en No.

La ventana de propiedades

Verá la ventana de propiedades debajo del Explorador de proyectos. Es posible que deba activarlo.

prensa F4 o haga clic en Vista, Ventana Propiedades.

La ventana de propiedades le permite ver las propiedades del módulo o formulario en particular que se selecciona en el Explorador de proyectos. Cuando esté trabajando en módulos, puede usar la ventana de propiedades para cambiar el nombre del módulo. Ésta es la única propiedad disponible para un módulo. Sin embargo, cuando trabaje con formularios, habrá muchas más propiedades disponibles y la ventana Propiedades se utilizará ampliamente para controlar el comportamiento de los formularios y los controles contenidos en el formulario.

Cuando graba una macro, se coloca automáticamente en un módulo estándar. El módulo se llamará "Módulo 1' y cualquier código contenido en ese módulo está disponible para ser utilizado en todo su proyecto. Debe cambiar el nombre de su módulo a algo que sea significativo, que haría que su código fuera fácil de encontrar si tuviera que agregar varios módulos al proyecto.

También puede cambiar el nombre de sus formularios.

Si ha cambiado el nombre de su hoja en Excel, el nombre de la hoja aparecerá como el nombre de la hoja entre paréntesis después de Sheet1.

Si desea cambiar el nombre del módulo detrás de la hoja, puede cambiarlo de la misma manera que cambia el módulo y el nombre del formulario de usuario, cambiando la propiedad Nombre en la ventana Propiedades.

¿Cansado de buscar ejemplos de código VBA? ¡Prueba AutoMacro!

La ventana de código

La ventana de código le muestra los subprocedimientos y funciones que están contenidos en sus módulos; le muestra el código real. Cuando grabe una macro, se creará un subprocedimiento para usted. Si agrega una tecla de acceso directo a la macro, aparecerá como un comentario en la macro para hacerle saber cuál es la tecla de acceso directo que asignó a la macro.

En la parte superior de la ventana de código hay dos cuadros combinados. Estos le permiten ver en qué objeto (si lo hay) dentro del Módulo en el que podría estar trabajando y en qué Procedimiento podría estar trabajando.

En el ejemplo anterior, no estamos trabajando en ningún objeto; por lo tanto, está configurado en general, pero estamos trabajando dentro del procedimiento Gridlines.

Si tuviéramos más de un procedimiento en este módulo, podríamos usar el cuadro combinado de arriba para navegar a los otros procedimientos.

Entendiendo el Código

Hay 2 tipos de procedimientos: Subprocedimientos y Procedimientos de función.

Subprocedimientos

La grabadora de macros solo puede grabar procedimientos secundarios. Un procedimiento Sub hace cosas. Realizan acciones como formatear una tabla o crear una tabla dinámica, o en el ejemplo de la línea de cuadrícula, cambiar la configuración de vista de su ventana activa. La mayoría de los procedimientos escritos son subprocedimientos. Todas las macros son procedimientos secundarios.

Un subprocedimiento comienza con un Sub declaración y termina con una End Sub declaración. El nombre del procedimiento siempre va seguido de paréntesis.

123 Sub HideGridLines ()ActiveWindow.DisplayGridlines = FalsoEnd Sub

Procedimientos de función

Un procedimiento de función devuelve un valor. Este valor puede ser un valor único, una matriz, un rango de celdas o un objeto. Las funciones suelen realizar algún tipo de cálculo. Las funciones en Excel se pueden utilizar con el Asistente de funciones o se pueden llamar desde Subprocedimientos.

123 Función Kilos (libras como doble)Kilos = (libras / 2,2)Función final

Esta función se puede utilizar dentro del cuadro de diálogo Insertar función en Excel para convertir libras a kilogramos.

Creando un nuevo procedimiento

Antes de crear su nuevo procedimiento, asegúrese de estar en el módulo en el que desea almacenar el procedimiento. Puede crear un nuevo procedimiento haciendo clic en el menú Insertar, Procedimiento;

o puede hacer clic en el icono de la barra de herramientas

Aparecerá el siguiente cuadro de diálogo

  1. Escriba el nombre de su nuevo procedimiento en el cuadro de nombre; debe comenzar con una letra del alfabeto y puede contener letras y números y tener un máximo de 64 caracteres.
  2. Puedes tener un Subprocedimiento, a Procedimiento de función o un Propiedad procedimiento. (Las propiedades se utilizan en los módulos de clase y establecen las propiedades de los controles ActiveX que puede haber creado).
  3. Puede definir el alcance del procedimiento Público o Privado. Si el procedimiento es público (predeterminado), todos los módulos del proyecto pueden usarlo, mientras que si el procedimiento es privado, solo este módulo podrá usarlo.
  4. Puede declarar variables locales en este procedimiento como estáticas (esto tiene que ver con el alcance de la variable y hace que una variable de nivel de procedimiento local sea pública para todo el módulo). No usaremos esta opción.

Cuando haya completado todos los detalles relevantes, haga clic en OK.

A continuación, escriba su código entre las instrucciones Sub y End Sub.

ALTERNATIVAMENTE - puede escribir las instrucciones Sub y End Sub en su módulo exactamente como aparece arriba. No es necesario que coloque la palabra Público delante de la palabra sub; si se omite esta palabra, se asume automáticamente que todos los procedimientos del módulo son Públicos.

Entonces escribes Sub y luego el nombre de su procedimiento seguido de paréntesis.

es decir:

1 Subprueba ()

los End Sub La declaración aparecerá automáticamente.

Programación VBA | ¡Code Generator funciona para usted!

Escribir código que sea fácil de entender y navegar

Agregar comentarios

Adquiera el hábito de poner comentarios en su código para recordar en una etapa posterior la funcionalidad del código.

Puede insertar un comentario en su código pero escribiendo un apóstrofo en el teclado o puede activar la barra de herramientas Editar y usar el botón de comentario que aparece en esa barra de herramientas.

Haga clic derecho en las barras de herramientas.

Seleccione Editar.

Haga clic en el botón de comentario para insertar un comentario en su código.

NOTA: Por lo general, solo usa el botón de bloqueo de comentarios cuando tiene algunas líneas de código que desea comentar (y no eliminar). Es más fácil para un solo comentario usar un apóstrofe.

Sangría

Un buen hábito a tener en cuenta es sangrar el código para que sea más fácil leerlo y ver las diferentes partes del código.

Puede haber muchos niveles de sangría, según la lógica de su código.

UpperCase vs LowerCase

VBA ajusta todo el código al caso adecuado, por lo que si escribe TODO EN MAYÚSCULAS o todo en minúsculas, reajustará su código para que esté en el caso adecuado.

Programación VBA | ¡Code Generator funciona para usted!

Autocompletar

Cuando ajuste su código, notará que VBA intenta ayudarlo sugiriendo el código que puede escribir. Esto se conoce como Autocompletar.

Detección y depuración de errores

Hay 4 tipos de errores que pueden ocurrir cuando escribe código VBA: errores de sintaxis, errores de compilación, errores de tiempo de ejecución y errores lógicos.

Errores de sintaxis

Estos ocurren cuando escribe el código incorrectamente. Esto se evita en gran medida con VBA al tener activada la opción de verificación de sintaxis. Esto normalmente está activado de forma predeterminada, pero si está apagado, enciéndalo yendo a Instrumentos, Opciones y haga clic en Verificación automática de sintaxis.

Si escribe el código incorrectamente (por ejemplo, excluyendo algo que debería estar en el código), aparecerá un cuadro de mensaje mientras escribe el código y tendrá la oportunidad de modificarlo.

Errores de compilación

Ocurren cuando falta algo en el código que impide su ejecución. El error no aparece cuando escribe el código, pero ocurre cuando intenta ejecutar el código.

Programación VBA | ¡Code Generator funciona para usted!

Errores en tiempo de ejecución

Esto ocurre cuando ejecuta el código y la sintaxis y la compilación son correctas, pero ocurre algo más que impide que el código se ejecute correctamente.

En este caso, Sheet4 no existe. Este mensaje de error es más útil que los mensajes de error de compilación, ya que le brinda la oportunidad de depurar el código y ver por qué no funciona.

Hacer clic Depurar. El código se detendrá en el error y resaltará el error en amarillo, lo que le permitirá corregir su error.

Modifique la Hoja 4 a la Hoja 2 (ya que la Hoja 2 existe y la Hoja 4 no existe).

prensa F5 o haga clic en el Continuar en la barra de herramientas.

Errores lógicos

Estos son los más difíciles de encontrar. En su caso, el código está escrito correctamente, pero la lógica real del código es defectuosa, por lo que es posible que no obtenga el resultado que desea del código. Para errores lógicos, la captura de errores es esencial.

Hay 2 tipos de trampas de errores

En caso de error, vaya a

El siguiente código es para abrir el cuadro de diálogo Abrir archivo; nos dará un error si el usuario hace clic Cancelar.

Cuando ejecuta el código, aparece el cuadro de diálogo Abrir archivo.

Cuando haga clic en cancelar, se producirá el error.

La siguiente trampa de error continuará el código hasta la función de salida del código y devolverá el mensaje.

Esto hace uso de On Error GoTo para salir de la función.

Cuando ejecute el código y haga clic en cancelar, aparecerá el cuadro de mensaje.

En caso de error, reanudar siguiente

Si pones el En caso de error, reanudar siguiente En su código, la línea que contiene el error será ignorada y el código continuará.

Por ejemplo, si el usuario hace clic en Cancelar en el código a continuación, el código no le dará un error en tiempo de ejecución, simplemente terminará sin que el código haga nada más.

Hay ocasiones en las que esto es muy útil, pero también puede ser muy peligroso en algunas circunstancias, ya que no devuelve un mensaje de por qué obtuvo un error.

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave