Buscar..


Observaciones

Esta sección proporciona una descripción general de qué es vba y por qué un desarrollador puede querer usarlo.

También debe mencionar cualquier tema grande dentro de vba, y vincular a los temas relacionados. Dado que la Documentación para vba es nueva, es posible que deba crear versiones iniciales de los temas relacionados.

Versiones

Versión Versiones de oficina Notas de fecha de lanzamiento Fecha de lanzamiento
Vba6 ? - 2007 [Algún tiempo después] [1] 1992-06-30
Vba7 2010 - 2016 [blog.techkit.com] [2] 2010-04-15
VBA para Mac 2004, 2011 - 2016 2004-05-11

Accediendo al Editor de Visual Basic en Microsoft Office

Puede abrir el editor de VB en cualquiera de las aplicaciones de Microsoft Office presionando Alt + F11 o yendo a la pestaña Desarrollador y haciendo clic en el botón "Visual Basic". Si no ve la pestaña Desarrollador en la cinta, verifique si está habilitada.

Por defecto, la pestaña Desarrollador está deshabilitada. Para habilitar la pestaña Desarrollador, vaya a Archivo -> Opciones, seleccione Personalizar cinta en la lista de la izquierda. En la vista de árbol derecha "Personalizar la cinta de opciones", busque el elemento del árbol Desarrollador y configure la casilla de verificación Activar Desarrollador. Haga clic en Aceptar para cerrar el cuadro de diálogo Opciones.

Menú de opciones de archivo

La pestaña Desarrollador ahora está visible en la cinta de opciones en la que puede hacer clic en "Visual Basic" para abrir el Editor de Visual Basic. Alternativamente, puede hacer clic en "Ver código" para ver directamente el panel de código del elemento activo actualmente, por ejemplo, Hoja de trabajo, Gráfico, Forma.

Pestaña desarrollador

VBE

Puede usar VBA para automatizar casi cualquier acción que se pueda realizar de forma interactiva (manualmente) y también proporcionar una funcionalidad que no está disponible en Microsoft Office. VBA puede crear un documento, agregarle texto, formatearlo, editarlo y guardarlo, todo sin la intervención humana.

Primer módulo y Hello World

Para comenzar a codificar en primer lugar, debe hacer clic con el botón derecho en su Proyecto VBA en la lista de la izquierda y agregar un nuevo Módulo. Tu primer código Hello-World podría verse así:

Sub HelloWorld()
    MsgBox "Hello, World!"
End Sub

Para probarlo, presione el botón Play en su barra de herramientas o simplemente presione la tecla F5 . ¡Felicidades! Has construido tu primer módulo VBA propio.

Depuración

La depuración es una forma muy poderosa de observar de cerca y corregir el código que funciona incorrectamente (o que no funciona).

Ejecutar código paso a paso

Lo primero que debe hacer durante la depuración es detener el código en ubicaciones específicas y luego ejecutarlo línea por línea para ver si sucede lo que se espera.

  • Punto de interrupción ( F9 , Depuración - Alternar punto de interrupción): puede agregar un punto de interrupción a cualquier línea ejecutada (por ejemplo, no a declaraciones), cuando la ejecución llega a ese punto, se detiene y le da el control al usuario.
  • También puede agregar la palabra clave Stop a una línea en blanco para que el código se detenga en esa ubicación en tiempo de ejecución. Esto es útil si, por ejemplo, antes de las líneas de declaración a las que no puede agregar un punto de interrupción con F9
  • Paso a ( F8 , Depuración - Paso a): ejecuta solo una línea de código, si es una llamada de una función / sub definida por el usuario, se ejecuta línea por línea.
  • Paso a paso ( Shift + F8 , Depuración - Paso a paso): ejecuta una línea de código, no ingresa funciones / funciones definidas por el usuario.
  • Salir ( Ctrl + Shift + F8 , Depurar - Salir): sale de la sub / función actual (ejecute el código hasta su final).
  • Ejecutar al cursor ( Ctrl + F8 , Depurar - Ejecutar al cursor): ejecute el código hasta llegar a la línea con el cursor.
  • Puede usar Debug.Print para imprimir líneas en la ventana Inmediata en tiempo de ejecución. También puede utilizar la Debug.? como un atajo para Debug.Print

Ventana de relojes

Ejecutar el código línea por línea es solo el primer paso, necesitamos conocer más detalles y una herramienta para eso es la ventana de visualización (Ver - Ventana de visualización), aquí puede ver los valores de las expresiones definidas. Para agregar una variable a la ventana de visualización, ya sea:

  • Haga clic derecho en él y luego seleccione "Agregar reloj".
  • Haga clic derecho en la ventana del reloj, seleccione "Agregar reloj".
  • Ir a depurar - Añadir reloj.

Cuando agrega una nueva expresión, puede elegir si solo desea ver su valor, o también interrumpir la ejecución del código cuando es verdadera o cuando cambia su valor.

Ventana inmediata

La ventana inmediata le permite ejecutar código arbitrario o imprimir elementos precediéndolos con la palabra clave Print o con un único signo de interrogación " ? "

Algunos ejemplos:

  • ? ActiveSheet.Name - devuelve el nombre de la hoja activa
  • Print ActiveSheet.Name : devuelve el nombre de la hoja activa
  • ? foo - devuelve el valor de foo *
  • x = 10 series de x a 10 *

* La obtención / configuración de valores para variables a través de la ventana Inmediata solo se puede realizar durante el tiempo de ejecución

Depuración de mejores prácticas

Siempre que su código no funcione como se esperaba, lo primero que debe hacer es leerlo con cuidado, en busca de errores.

Si eso no ayuda, entonces comience a depurarlo; para procedimientos cortos, puede ser eficiente simplemente ejecutarlo línea por línea, para los más largos probablemente necesite establecer puntos de interrupción o interrupciones en las expresiones observadas, el objetivo aquí es encontrar que la línea no funcione como se espera.

Una vez que tenga la línea que da el resultado incorrecto, pero la razón aún no está clara, intente simplificar expresiones o reemplace las variables con constantes, que pueden ayudar a entender si el valor de las variables es incorrecto.

Si todavía no puedes resolverlo, y pide ayuda:

  • Incluya la menor parte posible de su código para comprender su problema.
  • Si el problema no está relacionado con el valor de las variables, entonces reemplácelas por constantes. (así, en lugar de Sheets(a*b*c+d^2).Range(addressOfRange) escriba Sheets(4).Range("A2") )
  • Describa qué línea da el comportamiento incorrecto y cuál es (error, resultado incorrecto ...)


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow