Ejecutar un programa y reglas de escritura
Objetivos del capítulo
Una vez que haya utilizado con éxito la grabadora de macros y haya creado su primer programa, es el momento de ejecutarlo.
Este capítulo le permitirá aprender las diferentes formas de ejecutar un programa.
Aprenderá algunas reglas de escritura que le aconsejamos encarecidamente que respete.
También verá las primeras herramientas de depuración.
Ejecutar un programa desde la cinta de opciones
Ya ha visto en el capítulo La grabadora de macros cómo ejecutar una macro previamente grabada desde Excel. Pero esta no es la única forma que se puede utilizar para ejecutar un programa.
Ejecutar un programa desde VBE
Hay varias formas de ejecutar un programa cuando se está en el entorno de programación VBE. Dependiendo de su desenvoltura o de sus hábitos, puede utilizar la que más le convenga.
Usar la barra de herramientas
Para iniciar un programa, la primera solución es situar el cursor dentro de la macro que desea ejecutar, es decir, entre las etiquetas Sub y End Sub que definen los límites de la macro.
Haga clic en el botón Ejecutar Sub/UserForm (F5) de la barra de herramientas.
![images/cap04_img_01.png](https://www.eni-training.com/download/8085119a-0c84-4016-9951-8b65c868e345/images/cap04_img_01.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
El programa se ejecuta.
Usar un método abreviado de teclado
Si prefiere utilizar el teclado, también puede ejecutar su macro desde este.
Coloque el cursor dentro de la macro que desea ejecutar y pulse la tecla F5, que tiene la misma función que el botón Ejecutar Sub/UserForm (F5) de la barra de herramientas.
Usar la ventana Inmediato
Si desea ejecutar una función o procedimiento que requiera parámetros, las dos primeras soluciones no funcionarán, ya que el programa necesita recibir esta información para poder ejecutarse. Pasar por la ventana Inmediato es la solución adecuada.
Ejecutar un procedimiento o una macro
Si desea ejecutar una macro o procedimiento, introduzca el nombre en la ventana Inmediato y confirme pulsando Intro.
Macro1
Ejemplo 1: llamada a una macro por su nombre en la ventana Inmediato
![images/cap04_img_02.png](https://www.eni-training.com/download/8085119a-0c84-4016-9951-8b65c868e345/images/cap04_img_02.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Si su procedimiento necesita...
Modo paso a paso
Cuando se ejecuta una macro, todas las instrucciones se leen de una sola vez hasta llegar al final del programa.
Como desarrollador, puede desplazarse por el código en modo paso a paso, para que las instrucciones se ejecuten una tras otra.
Aquí, se trata de que usted pueda ver el progreso de su programa línea por línea.
Pulse la tecla F8 en lugar de F5; el programa se iniciará con la primera línea ejecutable.
La línea se resalta en amarillo y aparece un cursor en forma de flecha en la franja gris, a la izquierda de la línea de código.
![images/cap04_img_08.png](https://www.eni-training.com/download/8085119a-0c84-4016-9951-8b65c868e345/images/cap04_img_08.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Esta línea resaltada será la siguiente línea que ejecutará el programa. Solo tiene que volver a pulsar la tecla F8 para pasar a la próxima línea. Las líneas comentadas no se leen y el programa pasará a la siguiente línea ejecutable automáticamente.
También puede hacer que el resto del programa se ejecute de nuevo hasta el final, pulsando la tecla F5.
Puntos de interrupción
Hasta ahora ha visto las dos formas de ejecutar un programa: de una sola vez, con la tecla F5, y en modo paso a paso con F8.
También se puede hacer pasar el código hasta una línea específica.
Para conseguirlo, puede utilizar lo que se conoce como puntos de interrupción.
Para añadir puntos de interrupción en una o varias líneas de su programa, haga clic en la parte derecha del código donde debe insertarse el punto de interrupción y, a continuación, pulse la tecla F9 o haga clic directamente en la franja gris situada a la izquierda de su línea de código.
También puede hacer clic en la herramienta Alternar punto de interrupción (F9).
![images/cap04_img_09.png](https://www.eni-training.com/download/8085119a-0c84-4016-9951-8b65c868e345/images/cap04_img_09.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Aparecerá un punto de color granate:
![images/cap04_img_10.png](https://www.eni-training.com/download/8085119a-0c84-4016-9951-8b65c868e345/images/cap04_img_10.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
La presencia de un punto de interrupción actúa de forma tal que el programa se iniciará desde la primera instrucción y, cuando tenga que ejecutar la línea identificada con un punto de interrupción como su siguiente línea, el programa se detendrá, dejándole el campo libre para realizar sus comprobaciones:
![images/cap04_img_11.png](https://www.eni-training.com/download/8085119a-0c84-4016-9951-8b65c868e345/images/cap04_img_11.png?id=AAEAAAD%2f%2f%2f%2f%2fAQAAAAAAAAAMAgAAAE1FbmkuRWRpdGlvbnMuTWVkaWFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VuaS5FZGl0aW9ucy5NZWRpYXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAAAwdGVzdCB2Ml84IC0gZmZhNjQzOWQtZDZjYi00NzYxLWJhYTMtZWZkZDNiZDcwMWM25rSq0F7p2IgL)
Para eliminar un punto de interrupción, después de mover el cursor a la línea en cuestión, pulse la tecla F9, haga clic en la herramienta Alternar punto de interrupción (F9) o haga clic directamente en el punto granate.
Usted puede desactivar todos los puntos...
Reglas de escritura de un programa
Programación imperativa
El lenguaje VBA sigue una lógica imperativa, es decir, las líneas se ejecutan una tras otra, según su orden de aparición en el programa. Si una instrucción no se ejecuta, la siguiente tampoco lo hará.
Respetar una sangría
Cuando escriba un programa, este será leído por el ordenador, pero, para el ser humano que usted es, la lectura y relectura de su código son primordiales. Así, cuando las instrucciones están englobadas por otras, por ejemplo, con estructuras condicionales o bucles, que aprenderá en este libro, las instrucciones incluidas deben tener sangría, es decir, estar separadas por tabuladores de la instrucción que las engloba.
He aquí un ejemplo de un programa que no tiene sangría:
Sub MalEjemplo()
Dim i As Integer
For i = 1 To 5
If I Mod 2 =0 Then
MsgBox i
End If
Next i
End Sub
Ejemplo 6: usar un código sin sangría
El hecho de sangrar un código significa simplemente hacerlo más legible, así:
Sub MalEjemplo()
Dim i As Integer
For i = 1 To 5
If i Mod 2 =0 Then
MsgBox i
End If
Next...
Para lo que resta de este libro
Para que pueda beneficiarse de los ejemplos de código que se ofrecen a lo largo de este libro, se recomienda que copie las instrucciones que se le presentarán y las ejecute en la forma que usted prefiera.