Ventana inmediata de Excel VBA: ¡5 formas increíbles de usarlo!

"Ventana inmediata" puede ser una herramienta útil para usar cuando se trabaja con VBA en Excel.

La ventana Inmediato le permite hacer rápidamente cosas como:

  • Obtener información sobre archivos de Excel (como el recuento de hojas en un libro o el nombre del libro)
  • Obtenga información de Debug.Print rápidamente
  • Ejecute una línea de código en segundos
  • Ejecuta una macro (o llama a una función)
  • Obtener información sobre variables (o establecer el valor o las variables)

Si bien no necesita usar la ventana inmediata para trabajar con VBA en Excel, saber cómo usarlo bien puede hacerlo mucho más eficiente.

En este tutorial, cubriré todo lo que necesita saber sobre la ventana inmediata y cómo usarla mejor (explicado con ejemplos).

¡Empecemos!

¿Qué es una ventana inmediata en Excel VBA?

Immediate Window es una parte del VB Editor que puede usar para hacer algunas cosas rápidas.

Para darle un ejemplo, si tiene un libro de trabajo con algunas hojas de trabajo ocultas y desea saber rápidamente el recuento de hojas de trabajo totales, puede hacerlo en unos segundos con la ventana Inmediato.

Immediate Window hace mucho más (como verá más adelante en este tutorial). Pero para empezar, pensemos en la ventana inmediata como una herramienta para ayudarlo a acelerar su trabajo en Excel VBA.

¿Dónde encontrar la ventana inmediata?

Cuando abre Excel VB-Editor, es posible que ya vea la ventana inmediata como parte del VB Editor. Y si aún no lo ve, puede hacer que aparezca fácilmente.

A continuación se muestran los pasos para abrir el Editor de VB y hacer visible la Ventana Inmediata:

  1. Haga clic en la pestaña "Desarrollador" en la cinta de Excel (si no ve la pestaña de desarrollador, haga clic aquí para aprender cómo obtenerla)
  2. En el grupo de código, haga clic en "Visual Basic". Esto abrirá el Editor de VB
  3. En el VB Editor, haga clic en la opción "Ver" en el menú
  4. Haga clic en Ventana inmediata. Esto hará que la ventana inmediata se muestre en VB Editor.

Si se siente más cómodo con los atajos, a continuación se muestran algunos para acelerar los pasos anteriores:

  • Para abrir el VB Editor: ALT + F11 (esto funciona incluso si no tiene la pestaña Desarrollador en la cinta)
  • Para mostrar la ventana inmediata - Control + G (use este, el VB Editor está abierto)

Ejemplos de uso de la ventana inmediata en Excel VBA

Ahora que sabe dónde encontrar la ventana inmediata, veamos algunos ejemplos asombrosos donde puede usarla cuando trabaja con Excel VBA.

Obtener información sobre los archivos / libros de trabajo

La "Ventana Inmediata" es un lugar donde puede hacer preguntas sobre los libros de trabajo y le dará la respuesta de inmediato.

Por ejemplo, suponga que tiene un libro de trabajo y desea saber cuántas hojas hay en el libro de trabajo, puede escribir el siguiente código en la ventana inmediata y presionar la tecla Intro.

? ActiveWorkbook.Sheets.Count

Esto le dirá instantáneamente el número total de hojas en el libro activo.

Esto puede ser útil cuando tiene un libro de trabajo que tiene muchas hojas y no puede contarlo manualmente (o no quiere), o cuando tiene un libro de trabajo donde hay hojas ocultas y desea saber el total contar.

El ? Se supone que (signo de interrogación) debe usarse antes de la consulta para que VBA pueda entender que está haciendo una pregunta. Si no usa este signo de interrogación, la ventana inmediata no le dará el detalle / respuesta.

Ahora, este es un ejemplo realmente simple en el que Immediate Window le brinda información y ahorra tiempo.

A continuación se muestran algunos ejemplos más:

Para obtener el nombre del libro activo

? ActiveWorkbook.Name

Para obtener el nombre de la hoja activa

? Hoja activa.Nombre

Para obtener la ruta del libro de trabajo (la dirección donde está guardado)

? ActiveWorkbook.Path

Entonces, si necesita algo sobre un objeto (como un libro de trabajo, hojas, gráficos, formas, rango, etc.), puede usar la ventana inmediata para obtener rápidamente esta información.

Obtener información de Debug.Print

En Excel VBA, Debug.Print se usa para mostrar el valor de una variable instantáneamente en la ventana inmediata.

Por ejemplo, el siguiente código mostraría instantáneamente el mensaje "Buenos días" en la ventana inmediata.

Sub DisplayMessage () Debug.Print "Buenos días" End Sub

Puede usar la línea Debug.Print en su código para obtener rápidamente algunos datos en la ventana inmediata o para depurar su código.

Por ejemplo, si desea obtener los nombres de todas las hojas en un libro de trabajo, puede usar el siguiente código:

Sub GetSheetNames () para cada sh en ActiveWorkbook.Sheets Debug.Print sh.Name Siguiente sh Fin Sub

El código anterior pasa por cada hoja del libro activo y da el nombre en la ventana inmediata.

Debug.Print es una técnica útil para depurar su código. Por ejemplo, si está ejecutando un bucle y desea ver cuántas veces se ejecutó el bucle, simplemente puede colocar una línea Debug.Print que simplemente muestra los números en aumento cuando se ejecuta cada bucle.

Si está usando Debug.Print para depurar el código, recuerde eliminarlo cuando haya terminado.

Ejecuta una macro (o una función)

Si bien hay varias formas de ejecutar una macro en Excel, una de las formas rápidas es usar la ventana inmediata.

Para ejecutar una macro, todo lo que necesita hacer es ingresar el nombre de la macro en la ventana inmediata y presionar la tecla Intro (el cursor debe estar al final del nombre de la macro para que esto funcione).

A continuación se muestra un ejemplo, en el que, tan pronto como ingrese el nombre de la macro en la ventana inmediata, se ejecuta el código (donde el código muestra el mensaje "Buenos días" en la ventana inmediata).

Esto puede resultar útil cuando tiene un código y desea comprobar si funciona como se esperaba o no. Puede tener una o más líneas Debug.Print en el código y ejecutar la macro desde la ventana inmediata.

Instantáneamente le mostrará los valores en la ventana inmediata y podrá verificar si todo está funcionando bien o no.

También puede utilizar la ventana inmediata para ejecutar funciones personalizadas.

Por ejemplo, en el siguiente ejemplo, se crea una función para verificar si un número es par o impar. Puede ejecutar esta función desde la ventana inmediata escribiendo la función con el argumento que toma. Debe usar el signo de interrogación en este caso, ya que le está pidiendo que devuelva un valor almacenado en la función.

Ejecutar una línea de código (o varias líneas de código)

Con la ventana inmediata, también puede ejecutar una línea de código (o varias líneas de códigos).

La mejor parte de esto es que simplemente puede abrir la ventana inmediata, ejecutar el código y cerrar (a diferencia de una macro que debe colocar en una ventana de módulo y luego ejecutar).

Un caso de uso en el que esto puede ser útil es cuando se desea mostrar rápidamente todas las hojas del libro de trabajo.

A continuación se muestra el código que puede colocar en la ventana inmediata para mostrar todas las hojas del libro. Coloque el cursor al final de la línea. y tan pronto como presione la tecla Intro, se mostrarán todas las hojas.

Para cada hoja de este libro de trabajo. Hojas: Hoja.Visible = Verdadero: Hoja siguiente

Tenga en cuenta que, aunque parece una sola línea de código, se compone de tres partes.

Cada parte está separada por: (dos puntos), que actúa como un salto de línea. Esto le permite usar el bucle For Next en la ventana inmediata para revisar cada hoja y cambiar la propiedad visible a TRUE (que muestra cualquier hoja oculta).

Obtener valores variables

A medida que comience a crear códigos VBA complejos, tendrá que depender de variables para hacer el trabajo.

Una variable es algo que tiene un valor y este valor puede cambiar cuando el código se está ejecutando. Puede usar una ventana inmediata para verificar estos valores de variable.

A continuación se muestra un código simple que da la suma de los primeros 10 enteros positivos y muestra el resultado en la ventana inmediata.

Sub AddFirstTenNumbers () Dim Var As Integer Dim i As Integer Dim k As Integer For i = 1 to 10 k = k + i Next i Debug.Print i, k End Sub

Tan pronto como ejecute este código, verá el resultado a continuación en la ventana inmediata. Esto le dice instantáneamente que el código está funcionando bien y está dando el resultado esperado.

En caso de que no dé los resultados esperados, puede depurar el código.

Mucha gente usa un cuadro de mensaje mientras depura el código. Si bien funciona bien, lo encuentro un poco intrusivo, ya que me lleva al libro de Excel y muestra un cuadro de mensaje. Por otro lado, usar la ventana inmediata para depurar es mucho más suave y me mantiene en el editor de Visual Basic.

Nota: si está trabajando con un código complejo y tiene varias variables de las que necesita realizar un seguimiento, es mejor usar una ventana de inspección. Una ventana de observación le permite agregar una variable y luego puede ver cómo esa variable cambia en tiempo real (o mientras recorre el código).

Establecer valor de variable al depurar

Este es un uso un poco avanzado de la ventana Inmediato, pero si la usa, puede ahorrar mucho tiempo al depurar el código.

Puede usar la ventana inmediata para establecer el valor de una variable mientras ejecuta el código en el modo de depuración (donde establece un punto de interrupción para que el código no se ejecute por completo, sino hasta una línea específica).

Por ejemplo, si tiene un ciclo que se ejecuta 10 veces y desea comprobar qué sucede cuando el ciclo se ejecuta por octava vez, no es necesario que recorra el ciclo siete veces para llegar a las octavas iteraciones. Simplemente puede agregar un punto de interrupción antes del bucle y cambiar la variable del bucle a 8. Ahora, cuando ejecute el código, le mostrará lo que sucede cuando los bucles se ejecutan por octava vez.

Esto se vuelve mucho más útil cuando escribe códigos complejos y desea depurar bucles específicos.

Suponga que tiene un código como se muestra a continuación:

Sub UnhideSheets () For i = 1 To Worksheets.Count Debug.Print Sheets (i) .Name Next i End Sub

El código anterior simplemente enumera los nombres de las hojas de todas las hojas del libro de trabajo en la ventana inmediata.

Si no desea enumerar los nombres de todas las hojas, sino solo las hojas después de la décima hoja, puede colocar un punto de interrupción en la segunda línea del ciclo (para que no se ejecute nada después de esa línea) y luego cambiar el variable 'i' a 11.

Para cambiar el nombre de la variable en la ventana inmediata, ingrese la siguiente línea:

i = 11

Esto asegurará que se ignoren las primeras 10 veces del ciclo y que el valor de la variable se establezca en 11.

Acoplamiento / desacoplamiento de la ventana inmediata

Puede tener una ventana inmediata acoplada al Editor de VB, lo que significa que permanece en un lugar en el Editor de VB y se mueve y cambia de tamaño con él.

Y también puede tenerlo desacoplado, lo que significa que es independiente del VB Editor y se puede mover como una ventana independiente.

A continuación se muestra cómo puede cambiar la configuración de acoplamiento para la ventana inmediata:

  1. Haga clic en la opción Herramientas en el menú del Editor VB
  2. Haga clic en "Opciones"
  3. En el cuadro de diálogo Opciones, haga clic en la última pestaña: Acoplamiento
  4. Marque la opción Ventana Inmediato para que se pueda acoplar y desmárquela para que no se pueda acoplar.
  5. Haga clic en Aceptar

Alternativamente, si la ventana inmediata está visible, también puede hacer clic con el botón derecho y cambiar la propiedad de anclaje de la misma.

Acoplable significa que la ventana inmediata se convertiría en parte de la ventana existente colocándose en ciertos lugares, como la izquierda de la ventana o en la parte inferior. Esto permite que las ventanas acopladas se muevan y dimensionen juntas.

La ventana inmediata no se muestra: aquí hay algunas formas de obtenerla

Puede haber varias razones para que esto suceda.

La razón más común por la que no ve una ventana inmediata es que no se ha hecho visible. Es posible que no sea visible de forma predeterminada y para que aparezca, debe ir a la opción Ver en el menú y hacer clic en la opción Ventana Inmediato. Esto asegurará que esté visible en el Editor de VB.

También puede usar el Control del teclado + G para hacer que se muestre la ventana inmediata. Utilice este método abreviado de teclado mientras se encuentra en VB Editor.

Otra razón por la que es posible que no vea la ventana inmediata es que se ha minimizado y ahora está tan cerrada que no puede verla (como se informa aquí). Simplemente haga un escaneo rápido y verifique si ve un pequeño cuadrado azul / rojo al acecho en alguna parte. Puede pasar el cursor sobre él y verá alguna opción para cambiar su tamaño.

Si no puede ver la ventana inmediata, aquí hay algo que ha funcionado para mucha gente (esto sucede a menudo debido a cambios en la resolución de la pantalla):

  1. Abra el editor de VB
  2. Presione Ctrl-G para enfocar la ventana inmediata (o haga clic en la opción Ver en el menú y luego haga clic en la ventana inmediata)
  3. Mantenga presionada la tecla ALT y luego presione la tecla de la barra espaciadora. Esto mostrará opciones desplegables para la ventana inmediata.
  4. Presione M (para Mover)
  5. Usa las flechas para mover la ventana
  6. Una vez que averigües dónde está, hazlo más grande

Obtuve esto de un foro aquí y también noté que se sugirió lo mismo como una solución para la ventana inmediata de VBA que no aparece.

Otra cosa que puede intentar es desacoplar la ventana inmediata (vaya a Herramientas -> Opciones -> Acoplamiento y desactive la opción de ventana inmediata). Esto ha funcionado para algunas personas.

También te pueden gustar los siguientes artículos:

  • Libro de trabajo de macros personales de Excel | Guardar y usar macros en todos los libros de trabajo
  • Bucles de Excel VBA: para el siguiente, hacer mientras, hacer hasta, para cada uno (con ejemplos)
  • Trabajar con hojas de trabajo usando Excel VBA
  • Creación de una función definida por el usuario (UDF) en Excel VBA

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

wave wave wave wave wave