3.6 Enregistrement, exécution et modification de macros VBA

3.6.1 Exécuter des macros à partir du panneau Macro

Utilisez le panneau Macro pour exécuter les macros VBA enregistrées dans votre fichier de document de session ou pour exécuter d'autres macros, comme des macros référencées, des macros EML ou des macros créées avec d'autres produits, que vous avez déjà exécutées dans cette session.

Pour exécuter des macros à partir du panneau Macro

  1. Sous l'onglet Session, dans le groupe Macros, cliquez sur Afficher le panneau Macro.

    Le panneau Macro comporte trois onglets :

    L'onglet Disponible affiche les macros VBA qui sont enregistrées dans le fichier de document de session.

    REMARQUE :l'onglet Disponible n'affiche pas les macros EML, les macros créées avec d'autres produits ou les macros qui ne sont pas enregistrées dans le fichier de document de session.

    L'onglet Récent affiche toutes les macros que vous avez déjà exécutées au cours de cette session. Cela inclut les macros VBA ainsi que les autres macros prises en charge exécutées, comme les macros EML ou les macros créées avec d'autres produits.

    L'onglet Favoris affiche toutes les macros que vous avez marquées comme favoris.

  2. Pour exécuter une macro, placez le pointeur de la souris sur la macro à exécuter, puis cliquez sur le bouton de lecture situé à gauche de la macro.

  3. Pour arrêter une macro, cliquez sur le bouton Arrêter situé en regard de celle-ci.

  4. Pour plus d'informations sur une macro, placez le pointeur de la souris sur celle-ci.

    Dans le cas d'une macro VBA, une info-bulle affiche le projet et le module VBA dans lesquels se trouve la macro.

    Pour les autres macros, une info-bulle indique le type de macro et son nom de fichier complet.

3.6.2 Exécution d'une macro créée dans un autre produit

Vous pouvez exécuter les macros VBA créées dans Reflection, ainsi que la plupart des macros créées à l'aide des produits Extra! et Reflection hérités. Vous pouvez également exécuter la majorité des macros créées à l'aide des produits Micro Focus Rumba, IBM Personal Communications, OpenText HostExplorer et Brandon Systems\Jolly Giant QWS3270. Cependant, vous ne pouvez exécuter des macros que sur des emplacements autorisés.

Plusieurs actions associées à des macros (comme Exécuter une macro Espace de travail de Reflection) sont disponibles à partir de la boîte de dialogue Sélectionner une action.

Vous pouvez également exécuter une macro en associant une action à un contrôle. Pour plus d'informations, reportez-vous à la section Ajout d'un bouton pour exécuter une macro.

Pour exécuter des macros créées avec d'autres produits

  1. Dans la boîte de dialogue Exécuter une macro, sélectionnez la macro à exécuter.

    REMARQUE :Les options de macro héritée sont disponibles uniquement si des fonctionnalités de compatibilité sont installées. En outre, pour exécuter des macros Extra! et Reflection héritées à partir de fichiers externes, vous devez indiquer, dans la boîte de dialogue Configuration de la sécurité de la macro et de l'API, le type de macro héritée à exécuter.

    Macro Espace de travail de Reflection

    Affiche les macros dans le document de la session en cours. Sélectionnez cette option pour exécuter des macros créées dans Reflection ou des documents (SP1) 2007.

    Pour exécuter une macro dans le projet commun et d'autres documents, sélectionnez l'option <Tous les projets standard> à partir du menu Macros dans :

    Macro Reflection héritée dans ce fichier

    Sélectionnez cette option pour exécuter des macros héritées dans le document actif. Ces macros comportent des fichiers de configuration hérités (.rsf, .r2w ou .r4w), et dans Reflection, des documents de session (.rd3x, .rd5x, .rdox) qui ont été précédemment convertis à partir de fichiers de configuration.

    Macro Reflection héritée dans un autre fichier

    Sélectionnez cette option pour indiquer et exécuter une macro dans un fichier SharedMacro (.rma) ou un fichier de configuration (.rsf, .r2w ou .r4w).

    Macro RB héritée

    Sélectionnez cette option pour indiquer et exécuter une macro Reflection Basic (.rbs).

    Script RCL hérité

    Sélectionnez cette option pour indiquer et exécuter un script RCL hérité. Disponible uniquement pour utilisation dans des documents de session VT.

    Bit supplémentaire! Macro

    Sélectionnez cette option pour indiquer et exécuter un fichier macro Extra! (.ebm).

    Macro Rumba

    Sélectionnez cette option pour indiquer et exécuter un fichier macro Micro Focus Rumba (.rmc).

    Macro QWS

    Sélectionnez cette option pour indiquer et exécuter un fichier macro Brandon Systems\Jolly Giant QWS3270 (.jgs).

    Macro IBM Personal Communications

    Sélectionnez cette option pour indiquer et exécuter un fichier macro IBM Personal Communications (.mac).

  2. Si vous ne trouvez pas de macro de type Espace de travail, sélectionnez Configurer des références VBA dans la fenêtre Paramètres pour ouvrir la boîte de dialogue Ajouter une macro de référence VBA, puis vérifiez la liste des références manquantes (signalées par le bouton ). Après avoir corrigé le problème (en général, un fichier manquant ou un lecteur réseau déconnecté), fermez votre session, puis ouvrez-la de nouveau.

3.6.3 Création d'une macro dans l'éditeur Visual Basic

Dans la mesure du possible, créez toujours les macros dans des modules pour renforcer l'intégrité et la stabilité de votre programme. La seule exception à cette règle concerne les procédures d'événement, qui sont ajoutées directement aux objets Reflection.

Pour créer une macro dans l'éditeur Visual Basic

  1. Dans Reflection, ouvrez un document de session.

  2. Le document de session apparaît en tant que projet dans l'Explorateur de projet, par exemple, Projet (Ma session.rd3x).

  3. Dans l'Explorateur de projet, sélectionnez le projet dans lequel vous souhaitez enregistrer la macro, puis choisissez Insertion > Module pour créer un nouveau module.

  4. Cliquez deux fois sur le module que vous avez créé.

    La fenêtre Code apparaît.

  5. Choisissez Insertion > Procédure, saisissez un nom dans la zone Nom, puis cliquez sur OK.

    Le nom que vous choisissez doit respecter les règles syntaxiques Visual Basic propres aux macros. Pour plus d'informations, reportez-vous à Affectation de noms aux macros.

  6. Saisissez le code de votre macro entre les instructions Sub (ou Public Sub) et End Sub.

    L'aide contextuelle est disponible pour les commandes Visual Basic. Placez le point d'insertion dans une commande et appuyez sur F1.

3.6.4 Enregistrement d'une macro VBA

Vous pouvez enregistrer une macro VBA afin d'automatiser votre interaction avec les applications hôte, y compris les opérations suivantes :

  • Envoi de données ou saisie de texte dans l'application hôte.

  • Coupe, copie ou collage de texte ou de données d'une application hôte à une autre.

  • Basculement d'onglets pour passer d'une application hôte à une autre.

  • Sélection d'un texte avec une souris ou utilisation de la souris pour déplacer le curseur (les clics de souris sont enregistrés en tant que positions du curseur.)

Vous pouvez enregistrer les éléments suivants :

  • Interaction avec les paramètres de Reflection et les fonctions de productivité (telles que la vérification orthographique, l'extension automatique et la saisie semi-automatique).

  • Connexion à l'hôte ou déconnexion de celui-ci.

  • Interaction avec les applications Web.

  • Coupe ou collage à partir d'un hôte vers une application externe (par exemple, le bloc-notes).

Pour enregistrer une macro

  1. Effectuez la ou les tâches à automatiser.

  2. (Facultatif) Si vous devez interrompre l'enregistrement pour effectuer une autre tâche, cliquez sur Interrompre l'enregistrement. Lorsque vous êtes prêt à reprendre l'enregistrement, cliquez de nouveau sur Interrompre l'enregistrement.

  3. Lorsque vous avez terminé d'enregistrer la macro, cliquez sur Arrêter l'enregistrement.

    La boîte de dialogue Enregistrement terminé apparaît.

  4. Nommez la macro et choisissez l'emplacement auquel vous voulez l'enregistrer.

  5. Si vous souhaitez exécuter la macro à chaque connexion de la session, sélectionnez Définir comme macro de connexion.

    REMARQUE :vous pouvez affiner les macros enregistrées à l'aide de Visual Basic Editor. Pour plus d'informations, reportez-vous à la rubrique Modification d'une macro.

3.6.5 Modification d'une macro

Utilisez Visual Basic Editor pour modifier les macros de Reflection.

Pour modifier une macro

  1. La boîte de dialogue Macros apparaît.

  2. Dans la zone Nom de la macro, sélectionnez le nom de la macro à modifier et cliquez sur Modifier.

  3. Dans Visual Basic Editor, saisissez ou modifiez les commandes de macro.

  4. Dans le menu Fichier, choisissez Enregistrer.

3.6.6 Exécution d'une macro de démarrage

Vous pouvez configurer une macro Visual Basic for Applications (VBA) pour qu'elle s'exécute au lancement d'un espace de travail de Reflection plutôt qu'à l'ouverture ou à la connexion d'une session à l'hôte.

Cette configuration vous permet de rassembler des informations concernant le mode de connexion des utilisateurs et de les utiliser pour définir les paramètres de la session.

Par exemple, vous pouvez créer une macro de démarrage pour réaliser les tâches suivantes :

  • Affichage d'une boîte de dialogue VBA pour recueillir des informations sur l'utilisateur avant la connexion à l'hôte

  • Lecture d'un fichier .ini

  • Vérification de la disponibilité de l'hôte ou du routeur

  • configuration des paramètres Reflection

    ATTENTION :Seules les macros du projet commun peuvent être configurées pour s'exécuter au démarrage de l'espace de travail. Ne configurez pas l'action « Exécuter une macro de type Espace de travail de Reflection » pour exécuter une macro présente dans un document de session (rd0x, rd3x, rd5x). Cela peut empêcher Reflection de démarrer correctement.

Pour configurer une macro de démarrage

  1. Sous Paramètres de l'espace de travail, cliquez sur Configuration des paramètres de l'espace de travail.

  2. Sous Espace de travail et documents, dans la liste Lors du démarrage de l'espace de travail, sélectionnez Exécuter une action au démarrage.

  3. Cliquez sur Sélectionner une action.

  4. Sous Action, sélectionnez Exécuter une macro de type Espace de travail de Reflection.

  5. Sous Paramètres pour l'action, choisissez Sélectionner une macro.

  6. Dans le champ Sélectionner une macro, choisissez la macro à exécuter au démarrage de Reflection.

3.6.7 Configuration des macros exécutées avant ou après une connexion hôte

Si vous avez créé une macro pour votre session ou espace de travail, vous pouvez configurer la session de sorte qu'elle exécute une macro de connexion.

Pour configurer une macro de connexion

  1. Dans la boîte de dialogue Paramètres, effectuez l'une des opérations suivantes :

    • (VT) Cliquez sur Configuration des paramètres de connexion.

    • (3270 ou 5250) Cliquez sur Configuration des paramètres de connexion avancés.

  2. Sous Action de connexion, indiquez si la macro doit être exécutée avant ou après la connexion initiale.

  3. Cliquez sur Sélectionner une action et sélectionnez la macro à exécuter.

3.6.8 Affectation de noms aux macros

Respectez les règles syntaxiques suivantes pour les noms de macros Visual Basic (notamment les procédures, les constantes, les variables et les arguments) :

  • Ils doivent commencer par une lettre. (Les noms ne respectent pas la casse, mais ils conservent la capitalisation.)

  • Utilisez uniquement des caractères alphanumériques et le trait de soulignement ( _ ). Les espaces et autres symboles ne sont pas autorisés.

  • Utilisez moins de 255 caractères.

  • Évitez les noms de commandes Visual Basic ou Reflection. Ou, si vous utilisez un nom de macro identique à celui d'une commande, lorsque vous souhaitez utiliser la commande, entrez son nom complet. (Pour ce faire, vous devez spécifier le nom de la bibliothèque associée devant le nom de la commande. Par exemple, si le nom de votre macro est « Bip », vous pouvez uniquement appeler l'instruction Bip de Visual Basic en utilisant VBA. Bip.)

  • Attribuez des noms uniques aux macros d'un module. Visual Basic ne vous autorise pas à conserver deux macros avec le même nom dans le même module de code. En revanche, deux macros avec le même nom peuvent exister, mais dans deux modules de code différents. Par exemple, vous ne pouvez conserver deux macros intitulées « Démarrage » que dans deux modules de code différents. Pour appeler une macro dont le nom existe déjà dans un autre module de code, vous devez entrer le nom complet de la macro. (Par exemple, « Module1.Démarrage » appelle la macro Démarrage dans le Module1.)