3.6 Ejecutar, grabar y editar macros de VBA

3.6.1 Ejecución de macros VBA

Puede ejecutar las macros VBA guardadas en el archivo de documento de sesión desde el panel de macros. Se trata de una forma cómoda de controlar y ejecutar las macros sin necesidad de añadir botones a la cinta de opciones. También puede ejecutar otros tipos de macros desde este panel después de ejecutarlos desde el cuadro de diálogo Ejecutar macro.

Ejecución de macros con el panel de macros

Puede utilizar el panel de macros para ejecutar las macros VBA guardadas en el archivo de documento de sesión o para ejecutar otras macros, como las macros a las que se hace referencia, las macros EML o las macros creadas con otros productos, que haya ejecutado anteriormente en esa sesión. El panel de macros proporciona un método sencillo para supervisar y ejecutar las macros que se aplican a una sesión sin añadir botones a la cinta. Muestra únicamente las macros que se aplican a la sesión activa.

Para ejecutar macros desde el panel de macros

  1. En el grupo Macros de la ficha Sesión, haga clic en Mostrar panel de macros.

    El panel de macros tiene tres fichas:

    En la ficha Disponible, se muestran las macros VBA que se han guardado en el archivo de documento de sesión.

    NOTA:En la ficha Disponible, no se muestran las macros EML, las macros creadas con otros productos u otras macros que no se hayan guardado en el archivo de documento de sesión.

    En la ficha Recientes, se muestran todas las macros que se han ejecutado anteriormente en esta sesión. Esto incluye las macros VBA, así como otras macros compatibles que haya ejecutado, como macros EML o macros creadas con otros productos.

    En la ficha Favoritas, se muestran todas las macros marcadas como favoritas.

  2. Para ejecutar una macro, pase el cursor por la macro que desea ejecutar y, a continuación, haga clic en el botón Reproducir que se encuentra a la izquierda de la macro.

  3. Para detener una macro, haga clic en el botón Detener situado junto a la macro.

  4. Para obtener más información acerca de una macro, pase el cursor por la macro.

    En el caso de las macros VBA, una información sobre herramientas muestra el proyecto y el módulo de VBA en los que se encuentra la macro.

    En otras macros, la información sobre herramientas muestra el tipo de macro y su nombre de archivo completo.

Ejecución de macros desde el cuadro de diálogo Ejecutar macro

Deberá utilizar el cuadro de diálogo Ejecutar macro para ejecutar las macros que no se han guardado en el archivo de documento de sesión la primera vez que ejecute estas macros. Después de ejecutar una macro una vez, puede ejecutarla desde la pestaña Recientes del panel de macros.

Para ejecutar una macro desde el cuadro de diálogo Ejecutar macro

  1. Elija el tipo de macro que desea ejecutar y selecciónela para abrirla.

    Se ejecuta la macro.

    NOTA:Después de ejecutar una macro una vez, puede ejecutarla desde la pestaña Recientes del panel de macros.

Ejecutar macros creadas en otros productos

Puede ejecutar macros VBA creadas en Reflection y la mayoría de las macros creadas con Extra! y productos de Reflection heredados. También puede ejecutar la mayoría de las macros creadas con productos de Micro Focus Rumba, IBM Personal Communications, OpenText HostExplorer y Brandon Systems\Jolly Giant QWS3270. Sin embargo, solo puede ejecutar macros en ubicaciones de confianza.

Algunas acciones relacionadas con las macros (como Ejecutar una macro de Espacio de trabajo de Reflection) están disponibles en el cuadro de diálogo Seleccionar acción.

También puede ejecutar una macro mediante la asignación de una acción a un control. Para obtener más información, consulte la Agregar un botón que ejecute una macro.

Para ejecutar macros creadas con otros productos

  1. En el cuadro de diálogo Ejecutar macro, seleccione la macro que desea ejecutar.

    NOTA:Las opciones de macro heredada están disponibles solo si están instaladas las funciones de compatibilidad. Asimismo, para ejecutar macros Extra! y Reflection heredadas desde archivos externos, en el cuadro de diálogoConfigurar API y seguridad de macro, debe especificar el tipo de macro heredada que desea ejecutar.

    Macro Espacio de trabajo de Reflection

    Muestra las macros en el documento de sesión activa. Seleccione esta opción para ejecutar macros creadas en documentos de Reflection o 2007 (SP1).

    Para ejecutar una macro en el proyecto común y en otros documentos, seleccione la opción <Todos los proyectos estándar> desde el menú Macros en:

    Macro heredada de Reflection en este archivo

    Seleccionar para ejecutar las macros heredadas en el documento activo. Estas macros incluyen los archivos de configuración heredados (.rsf, .r2w o .r4w) y, en Reflection, los documentos de sesión (.rd3x, .rd5x, .rdox) que se convirtieron previamente a partir de archivos de configuración.

    Macro heredada de Reflection en otro archivo

    Seleccionar para especificar y ejecutar una macro en un archivo SharedMacro (.rma) o un archivo de configuración (.rsf, .r2w, o .r4w).

    Macro RB heredada

    Seleccionar para especificar y ejecutar una macro Reflection Basic (.rbs).

    Script heredado de RCL

    Seleccionar para especificar y ejecutar un script RCL heredado. Disponible solo para usar en documentos de sesión VT.

    Macro Extra!

    Seleccionar para especificar y ejecutar un archivo de macro Extra! (.ebm).

    Macro Rumba

    Se selecciona para especificar y ejecutar un archivo de macro Micro Focus Rumba (.rmc).

    Macro QWS

    Seleccione esta opción para especificar y ejecutar un archivo de macro de Brandon Systems\Jolly Giant QWS3270 (.jgs).

    Macro IBM Personal Communications

    Seleccionar para especificar y ejecutar un archivo de macro IBM Personal Communications (.mac).

  2. Si no puede encontrar una macro de Espacio de trabajo, seleccione Configurar referencias VBA en la ventana Configuración para abrir el cuadro de diálogo de la macro Agregar referencia VBA y seguidamente compruebe en la lista si faltan referencias (indicadas por el botón ). Después de corregir el problema (normalmente un archivo que falta o una unidad de red desconectada), cierre y vuelva a abrir la sesión.

3.6.2 Grabación y supresión de macros VBA

Puede grabar una macro VBA para automatizar la interacción con las aplicaciones de host, incluyendo lo siguiente:

  • Enviar datos a una aplicación de host, o escribir texto en una aplicación de host.

  • Cortar, copiar o pegar texto o datos de un aplicación de host a otra.

  • Conmutar las fichas para pasar de una aplicación de host a otra.

  • Seleccionar texto con un ratón hacer clic con el ratón para mover el cursor (los clics del ratón se graban como posiciones del cursor).

No se puede grabar los siguiente:

  • La interacción con la configuración de Reflection y las funciones de Productividad (como el Corrector ortográfico, la Expansión automática y Autocompletar).

  • La conexión a un host o la desconexión de un host.

  • La interacción con aplicaciones web.

  • Cortar o copiar de un host a una aplicación externa (por ejemplo, el Bloc de notas).

Prácticas recomendadas para grabar macros

El uso de las siguientes prácticas recomendadas para grabar cuidadosamente la macro ayudará a evitar los problemas que puedan producirse ocasionalmente cuando se utiliza una conexión de red más lenta. Escribir muy rápido mientras se graba o la "anticipación de escritura" en una sesión mientras se está conectado a una conexión de red lenta pueden provocar que la macro se reproduzca de forma inesperada. Si sigue estas prácticas recomendadas, se obtendrán los mejores resultados.

  • Planifique la grabación con antelación para asegurarse de que conoce los pasos que debe seguir, las teclas que pulsará y las pantallas de host previstas.

  • Durante la grabación de la macro, después de pulsar una tecla para enviar datos al host, espere a que aparezca por completo la siguiente pantalla del host (a veces incluso unos segundos más) antes de pulsar las teclas siguientes.

  • Si la macro no se reproduce como se espera, suprímala y vuelva a grabarla cuidadosamente mediante pasos lentos y pausados.

Grabar una macro lenta y cuidadosamente no provoca que la macro se ejecute con un rendimiento reducido, ya que las macros siempre se ejecutan a la velocidad más rápida posible durante la reproducción. Grabar una macro bien ideada y planificada le proporcionará los mejores resultados.

Para grabar una macro

  1. Lleve a cabo las tareas que desee automatizar.

  2. (Opcional) Si debe interrumpir la grabación para llevar a cabo otra tarea, haga clic en Pausar grabación. Cuando esté listo para reanudar la grabación, haga clic de nuevo en Pausar grabación.

  3. Cuando haya finalizado la grabación de la macro, haga clic en Detener grabación.

    Aparecerá el cuadro de diálogo Grabación finalizada.

  4. Asigne un nombre a la macro y elija la ubicación en la que desea guardarla.

  5. Si desea ejecutar la macro cada vez que se conecte la sesión, seleccione Convertir en macro de conexión.

    NOTA:Puede ajustar y optimizar las macros grabadas utilizando el editor de Visual Basic. Para obtener más información, consulte Editar una macro.

  6. Si la macro no se reproduce en la forma prevista, suprima la macro y siga las prácticas recomendadas para volver a grabarla cuidadosamente.

Para eliminar una macro

  1. Seleccione Macro de área de trabajo de Reflection.

  2. En el cuadro de diálogo Macros, seleccione la macro que desea eliminar y haga clic en Suprimir.

3.6.3 Creación de una macro en el editor de Visual Basic

Siempre que sea posible, cree las macros en los Módulos. De este modo, se obtendrá una mayor integridad y estabilidad del programa. La excepción a esta regla son los procedimientos de eventos, que se agregan directamente a los objetos de Reflection.

Para crear una macro en el Editor de Visual Basic

  1. En Reflection, abra un documento de sesión.

  2. El documento de sesión aparece como proyecto en el Explorador de proyectos; por ejemplo, Proyecto (Mi sesión.rd3x).

  3. En el Explorador de proyectos, seleccione el proyecto en el que desea guardar la macro y, a continuación, seleccione Insertar > Módulo para crear un nuevo módulo.

  4. Haga doble clic en el módulo que ha creado.

    Aparece la ventana Código.

  5. Seleccione Insertar> Procedimiento, escriba un nombre en el cuadro Nombre y luego haga clic en Aceptar.

    El nombre que ha seleccionado debe seguir las convenciones de Visual Basic para los nombres de macros. Para obtener más información, consulte el Cómo nombrar las macros.

  6. Escriba el código de la macro entre las instrucciones Sub (o Public Sub) y End Sub.

    Los comandos de Visual Basic disponen de ayuda contextual. Coloque el punto de inserción dentro de un comando y pulse F1.

3.6.4 Edición de una macro

Utilice el editor de Visual Basic para editar las macros de Reflection.

Para editar una macro

  1. Aparecerá el cuadro de diálogo Macros.

  2. En el cuadro Nombre de la macro, seleccione el nombre de la macro para editar y haga clic en Editar.

  3. En el editor de Visual Basic, escriba o edite los comandos de la macro.

  4. En el menú Archivo, elija Guardar.

3.6.5 Ejecutar una macro de inicio

Puede configurar una macro Visual Basic para aplicaciones (VBA) para ejecutar cuando se inicie un espacio de trabajo de Reflection, más que para cuando se abra una sesión y se conecte al host.

Esto le permite recopilar información sobre cómo los usuarios se conectarán y usar dicha información para configurar los parámetros de la sesión.

Por ejemplo, puede crear una macro de inicio para realizar tareas como:

  • Mostrar un formulario de usuario de VBA para recopilar información del usuario antes de conectarse al host

  • Leer un archivo .ini

  • Comprobar la disponibilidad del host o del enrutador

  • Configurar los parámetros de Reflection

    CPRECAUCIÓN:Puede configurar solo macros en el proyecto común para ejecutar cuando se inicia el espacio de trabajo. No configure la acción "Ejecutar macro de espacio de trabajo de Reflection" para ejecutar una macro presente en un documento de sesión (rd0x, rd3x, rd5x). Esto evita que Reflection se inicie adecuadamente.

Para configurar una macro de inicio

  1. En Configuración del espacio de trabajo, haga clic en Configurar parámetros del espacio de trabajo.

  2. En Espacio de trabajo y documentos, en la lista Al iniciar espacio de trabajo, seleccione Acción ejecutar inicio.

  3. Haga clic en Seleccionar acción.

  4. En Acción seleccione Macro Ejecutar espacio de trabajo de Reflection.

  5. En Parámetros de acción, elija Seleccionar macro.

  6. En el cuadro Seleccionar una macro, seleccione la macro que desea ejecutar cuando inicie Reflection.

3.6.6 Configurar macros que se ejecutan antes o después de una conexión host

Si ha creado una macro para su sesión o espacio de trabajo, puede configurar la sesión para ejecutar una macro de conexión.

Para configurar una macro de conexión

  1. En el cuadro de diálogo Configuración..., realice una de las siguientes tareas

    • (VT) Haga clic en Configurar parámetros de conexión.

    • (3270 o 5250) Haga clic en Configurar parámetros avanzados de conexión.

  2. En Acción de conexión, seleccione si ejecutar la macro antes o después de la conexión inicial.

  3. Haga clic en Seleccionar acción y seleccione la macro que ejecutar.

3.6.7 Cómo nombrar las macros

Siga las pautas que se indican a continuación para asignar un nombre a las macros de Visual Basic (incluidos los procedimientos, constantes, variables y argumentos):

  • Utilice una letra como primer carácter. (Los nombres no distinguen mayúsculas de minúsculas, pero mantienen las mayúsculas).

  • Utilice sólo caracteres alfanuméricos y el carácter de subrayado ( _ ). Los espacios y demás símbolos no están permitidos.

  • Utilice 255 caracteres como máximo.

  • Evite nombres que coincidan con los comandos de Visual Basic o de Reflection. O bien, si decide utilizar un nombre de macro similar al de un comando, defina el comando por completo cuando desee utilizarlo. (Para ello, deberá escribir primero el nombre de la biblioteca de tipos asociada y luego el nombre del comando. Por ejemplo, si tuviera una macro denominada Beep, sólo podría invocar la instrucción Beep de Visual Basic utilizando VBA.Beep).

  • Asigne nombres exclusivos a las macros de un mismo módulo. Visual Basic no permite tener dos macros con el mismo nombre en el mismo módulo de códigos. Sin embargo, puede tener dos macros con el mismo nombre si se encuentran en módulos de códigos diferentes. Por ejemplo, aunque no podría tener dos macros denominadas StartUp en el mismo módulo de códigos, podría tener dos macros denominadas StartUp si estuvieran en módulos de códigos diferentes. Para invocar una macro cuyo nombre duplicado se encuentra en otro módulo de códigos, primero deberá definir por completo el nombre de la macro. (Por ejemplo, Module1.StartUp invoca la macro StartUp del módulo Module1).