Saltar a contenido

Ejecutar, grabar y editar macros de VBA

Puede crear y ejecutar macros VBA (Visual Basic for Applications) para simplificar y automatizar las tareas rutinarias.

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.

Usar el panel de macros

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 pestaña 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. Abra el cuadro de diálogo Ejecutar Macro. Los pasos dependen de su modo de interfaz de usuario.

    Modo de interfaz de usuario Pasos
    Cinta En la pestaña Sesión, en el grupo Macros, haga clic en Ejecutar macro.
    Clásico y MDI clásica En el menú Macro, seleccione Macros.
  2. 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 QWS 3270. Sin embargo, solo puede ejecutar macros en ubicaciones de confianza.

Ejecución de macros de Extra! Macros en Reflection Desktop

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 Agregar un botón para ejecutar una macro.

Para ejecutar macros creadas con otros productos

  1. Abra el cuadro de diálogo Ejecutar Macro. Los pasos dependen de su modo de interfaz de usuario.

    Modo de interfaz de usuario Pasos
    Cinta Reflection En la ficha Macros del grupo Avanzadas, haga clic en Ejecutar macro.
    Navegador de Reflection En el menú Reflection, seleccione Herramientas, Macro y, a continuación, Ejecutar Macro.
    TouchUx Toque el icono Herramientas y, a continuación, seleccione Mostrar cuadro de diálogo Ejecutar macro en Macro.
  2. En el cuadro de diálogo Ejecutar macro, seleccione la macro que desea ejecutar.

    Seleccione Para...
    Macro de área de trabajo de Reflection Visualizar las macros del documento de sesión activo. Seleccionar para ejecutar macros creadas en los documentos de Reflection.
    Ejecutar una macro en el proyecto común y otros documentos; seleccione la opción del menú Macros en:
    Macro heredada de Reflection en este archivo Ejecutar 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 Especificar o ejecutar una macro en un archivo SharedMacro (.rma) o un archivo de configuración (.rsf, .r2w o .r4w).
    Macro RB heredada Especificar y ejecutar una macro de Reflection Basic (.rbs).
    Guión RCL heredado Especificar y ejecutar un guión RCL heredado. Disponible solo para usar en documentos de sesión VT.
    Macro de Extra! Especificar y ejecutar un archivo de macro de Extra! (.ebm).
    Macro de Rumba Especificar y ejecutar un archivo de macro de Micro Focus Rumba (.rmc).
    Macro QWS Especificar y ejecutar un archivo de macro de Brandon Systems\Jolly Giant QWS3270 (.jgs).
    Macro de IBM Personal Communications Especificar y ejecutar un archivo de macro de IBM Personal Communications (.mac).

    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.

  3. 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, a continuación, 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.

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 Corrector ortográfico, 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).

Cómo grabar una macro utilizando la cinta de Reflection Desktop

Cómo grabar una macro utilizando la interfaz clásica de Reflection Desktop

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. Seleccione esta opción para grabar una macro. Los pasos dependen de su modo de interfaz de usuario.

    Modo de interfaz de usuario Pasos
    Cinta En la ficha Macros del grupo Avanzadas, haga clic en Grabar VBA.
    Navegador de Reflection En el menú Reflection, seleccione Herramientas, Macro y, a continuación, Grabar macro VBA.
    TouchUx Toque el icono Llave inglesa y, a continuación, seleccione Grabar macro VBA en Macro.
  2. Lleve a cabo las tareas que desee automatizar.

  3. (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.

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

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

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

  6. 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 mediante el editor de Visual Basic. Para obtener más información, consulte Editar una macro.

  7. 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. Abra el cuadro de diálogo Ejecutar Macro. Los pasos dependen de su modo de interfaz de usuario.

    Modo de interfaz de usuario Pasos
    Cinta En la pestaña Sesión, en el grupo Macros, haga clic en Ejecutar macro.
    Clásico y MDI clásica En el menú Macro, seleccione Macros.
  2. Seleccione Macro de área de trabajo de Reflection.

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

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. Abra el Editor Visual Basic. Los pasos dependen de su modo de interfaz de usuario.

    Modo de interfaz de usuario Pasos
    Cinta Reflection En la ficha Macros, haga clic en Visual Basic.
    Navegador de Reflection En el menú Reflection, elija Herramientas, Macro y por último Visual Basic.
    TouchUx Toque el icono Llave inglesa y en Macro seleccione Visual Basic.

    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, a continuación, 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 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.

Edición de una macro

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

Para editar una macro

  1. Abra el Editor Visual Basic. Los pasos dependen de su modo de interfaz de usuario.

    Modo de interfaz de usuario Pasos
    Cinta Reflection En la ficha Macros, haga clic en Visual Basic.
    Navegador de Reflection En el menú Reflection, elija Herramientas, Macro y por último Visual Basic.
    TouchUx Toque el icono Llave inglesa y en Macro seleccione Visual Basic.

    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.

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

Precaució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 impide que Reflection se inicie adecuadamente.

Para configurar una macro de inicio

  1. Abra el cuadro de diálogo Configuración del espacio de trabajo de Reflection. Los pasos dependen de su modo de interfaz de usuario.

    Modo de interfaz de usuario Pasos
    Cinta En el menú Archivo* o en el botón Reflection (cuando utilice la apariencia de Office 2007), elija *Parámetros de Espacio de trabajo de Reflection.
    Navegador de Reflection En el menú de Reflection, seleccione Configuración y, a continuación, Parámetros de Espacio de trabajo de Reflection.
    TouchUx Toque el icono Engranaje y, a continuación, seleccione Parámetros de Espacio de trabajo de Reflection.
  2. En Configuración del espacio de trabajo, haga clic en Configurar parámetros del espacio de trabajo.

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

  4. Haga clic en Seleccionar acción.

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

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

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

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. Abra la ventana Configuración. Los pasos dependen de su modo de interfaz de usuario.

    Modo de interfaz de usuario Pasos
    Cinta o Navegador de Reflection Con una sesión abierta en Reflection, en la Barra de herramientas de acceso rápido, haga clic en .
    TouchUx Toque el icono Engranaje y, a continuación, seleccione Configuración del documento.
  2. 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.

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

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

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).