3.6 Registrazione, esecuzione e modifica delle macro VBA

3.6.1 Esecuzione di una macro

È possibile eseguire macro VBA create in Reflection e la maggior parte delle macro create con versioni precedenti dei prodotti Reflection ed EXTRA! . È inoltre possibile eseguire la maggior parte delle macro create con Micro Focus Rumba, IBM Personal Communications, OpenText HostExplorer e prodotti di Brandon Systems/Jolly Giant QWS3270. Tuttavia è possibile eseguire le macro solo nei percorsi attendibili.

Nella finestra di dialogo Seleziona azione sono disponibili diverse azioni relative alle macro (ad esempio Esegui Macro Area di lavoro di Reflection).

È inoltre possibile eseguire una macro mappando un'azione a un controllo. Per ulteriori informazioni, vedere Aggiunta di un pulsante per eseguire una macro.

Per eseguire una macro

  1. Nella finestra di dialogo Esegui macro, selezionare la macro da eseguire.

    NOTA:Le opzioni per le macro di versioni precedenti sono disponibili solo se sono state installate le funzioni di compatibilità. Inoltre, per eseguire le macro delle versioni precedenti di Reflection ed EXTRA! da file esterni, è necessario specificare il tipo di macro delle versioni precedenti nella finestra di dialogo Configura protezione API e macro.

    Macro Area di lavoro di Reflection

    Mostra le macro nel documento della sessione attiva. Selezionare per eseguire macro create in documenti di Reflection o 2007 (SP1).

    Per eseguire una macro nel progetto Comune e in altri documenti, selezionare l'opzione <Tutti gli standard> dalle Macro nel menu:

    Macro di una versione precedente di Reflection nel file corrente

    Selezionare per eseguire le macro di versioni precedenti nel documento attivo. Queste macro includono i file di impostazione di versioni precedenti (.rsf, .r2w, oppure .r4w) e, in Reflection, documenti delle sessioni (.rd3x, .rd5x, .rdox) precedentemente convertiti da file di impostazione.

    Macro di una versione precedente di Reflection in un altro file

    Selezionare per specificare ed eseguire una macro in un file SharedMacro (.rma) o in un file di impostazioni (.rsf, .r2w oppure .r4w).

    Macro di una versione precedente di RB

    Selezionare per specificare ed eseguire una macro di Reflection Basic (.rbs).

    Script di una versione precedente di RCL

    Selezionare per specificare ed eseguire uno script di una versione precedente di RCL. Disponibile per l'utilizzo solo nei documenti di sessioni VT.

    Versioni precedenti di EXTRA! Macro

    Selezionare per specificare ed eseguire un file di macro di EXTRA! (.ebm).

    Macro Rumba

    Selezionare per specificare ed eseguire un file di macro di Micro Focus Rumba (.rmc).

    Macro di QWS

    Selezionare per specificare ed eseguire un file di macro di Brandon Systems\Jolly Giant QWS3270 (.jgs).

    Macro di IBM Personal Communications

    Selezionare per specificare ed eseguire un file di macro di IBM Personal Communications (.mac).

  2. Se non viene trovata una macro Area di lavoro, selezionare Imposta riferimenti VBA nella finestra Impostazioni per aprire la finestra di dialogo Aggiungi macro di riferimento VBA e verificare se nell'elenco mancano riferimenti (indicati dal pulsante ). Dopo aver corretto il problema (in genere un file mancante o un'unità di rete disconnessa), chiudere e riaprire la sessione.

3.6.2 Creazione di una macro in Visual Basic Editor

Tutte le volte che è possibile, creare macro nei moduli. In questo modo si otterrà una maggior coesione e stabilità del programma. L'unica eccezione a questa regola riguarda le procedure per gli eventi, che vengono aggiunte direttamente agli oggetti di Reflection.

Per creare una macro in Visual Basic Editor

  1. In Reflection, aprire un documento della sessione.

  2. Il documento della sessione viene visualizzato come un progetto in Gestione progetti, ad esempio Progetto (Mia sessione.rd3x).

  3. In Gestione progetti, selezionare il progetto in cui salvare la macro, quindi selezionare Inserisci > Modulo per creare un nuovo modulo.

  4. Fare doppio clic sul modulo creato.

    Si apre la finestra Codice.

  5. Selezionare Inserisci > Routine, digitare un nome nella casella Nome, quindi fare clic su OK.

    Il nome scelto deve essere conforme alle regole per la denominazione delle macro di Visual Basic. Per ulteriori informazioni, vedere Denominazione delle macro.

  6. Digitare il codice della macro tra le istruzioni Sub (o Public Sub) e End Sub.

    I comandi di Visual Basic dispongono di una guida contestuale. Posizionare il cursore all'interno di un comando e premere F1.

3.6.3 Registrazione di una macro VBA

È possibile registrare una macro VBA per automatizzare l'interazione con le applicazioni host, incluse:

  • Invio di dati all'applicazione host o immissione di dati nell'applicazione host.

  • Taglio, copia o incolla di testo o dati da un'applicazione host a un'altra.

  • Spostamento fra schede per passare da un'applicazione host a un'altra.

  • Selezione del testo con un clic del mouse oppure facendo clic con il mouse per spostare il cursore (i clic del mouse vengono registrati come posizioni del cursore).

Non è possibile registrare:

  • L'interazione con le impostazioni di Reflection e le funzioni di produttività (quali Controllo ortografia, Espansione automatica e Completamento automatico).

  • La connessione o la disconnessione da un host.

  • L'interazione con le applicazioni Web.

  • Le operazioni di taglio o incolla da un host a un'applicazione esterna (ad esempio Notepad).

Per registrare una macro

  1. Eseguire le attività che si desidera automatizzare.

  2. (Facoltativo) Se è necessario interrompere la registrazione per eseguire un'altra operazione, fare clic su Sospendi registrazione. Quando si è pronti per riprendere la registrazione, fare di nuovo clic su Sospendi registrazione.

  3. Al termine della registrazione della macro, fare clic su Interrompi registrazione.

    Viene visualizzata la finestra di dialogo Registrazione completata.

  4. Assegnare un nome alla macro, scegliere il percorso in cui salvarla, quindi fare clic su OK.

    NOTA:È possibile perfezionare le macro registrate utilizzando Visual Basic Editor. Per ulteriori informazioni, vedere Modifica di una macro.

3.6.4 Modifica di una macro

Utilizzare Visual Basic Editor per modificare le macro di Reflection.

Per modificare una macro

  1. Verrà visualizzata la finestra di dialogo Macro.

  2. Nella casella Nome macro selezionare il nome della macro da modificare e fare clic su Modifica.

  3. In Visual Basic Editor, digitare e o modificare i comandi macro.

  4. Nel menu File, selezionare Salva.

3.6.5 Esecuzione di una macro di avvio

È possibile impostare una macro di Visual Basic for Application (VBA) in modo che venga eseguita all'avvio dell'area di lavoro di Reflection, invece che all'apertura di una sessione o all'atto della connessione all'host.

Ciò consente di raccogliere informazioni sulla modalità con cui gli utenti si connettono e utilizzare tali informazioni per configurare le impostazioni della sessione.

Ad esempio, è possibile creare una macro di avvio per eseguire attività quali:

  • visualizzazione di un UserForm VBA per raccogliere informazioni dall'utente prima di connettersi all'host

  • lettura da un file .ini

  • verifica della disponibilità di host o router

  • configurazione delle impostazioni di Reflection

    ATTENZIONE:È possibile configurare per l'esecuzione all'avvio dell'area di lavoro solo le macro nel progetto Comune. Non configurare l'azione Esegui Macro Area di lavoro di Reflection per eseguire una macro presente in un documento della sessione (rd0x, rd3x, rd5x). Perché si impedirebbe l'avvio corretto di Reflection.

Per impostare una macro di avvio

  1. In Impostazioni Area di lavoro, fare clic su Configura Impostazioni area di lavoro.

  2. In Area di lavoro e documenti, selezionare Esegui azione Avvio dall'elenco All'avvio dell'area di lavoro.

  3. Fare clic su Seleziona azione.

  4. In Azione, selezionare Eseguire una macro nell'area di lavoro di Reflection.

  5. In Parametri dell'azione, scegliere Seleziona macro.

  6. Nella casella Seleziona una macro, selezionare la macro da eseguire all'avvio di Reflection.

3.6.6 Impostazione di macro che vengono eseguite prima o dopo la connessione con l'host

Se è stata creata una macro per la sessione o l'area di lavoro, è possibile impostare la sessione in modo che venga eseguita una macro alla connessione.

Per impostare una macro alla connessione

  1. Nella finestra di dialogo Impostazioni, eseguire una delle seguenti operazioni:

    • (VT) fare clic su Configura le impostazioni di connessione.

    • (3270 o 5250), fare clic su Configura le impostazioni avanzate di connessione.

  2. In Azione alla connessione, selezionare se la macro deve essere eseguita prima o dopo la connessione iniziale.

  3. Fare clic su Seleziona azione e selezionare la macro da eseguire.

3.6.7 Denominazione delle macro

Quando si assegnano nomi alle macro di Visual Basic, procedure, costanti, variabili e argomenti inclusi, è necessario attenersi alle regole descritte di seguito:

  • Utilizzare una lettera come primo carattere. (I nomi non distinguono lettere maiuscole o minuscole ma conservano le maiuscole.)

  • Utilizzare solo caratteri alfanumerici e il carattere ( _ ). Non sono consentiti spazi e altri simboli.

  • Utilizzare meno di 255 caratteri.

  • Evitare nomi di comandi di Visual Basic o di Reflection. Se a una macro viene assegnato un nome identico a quello di un comando, è necessario definire per esteso il comando quando lo si utilizza. (Per ottenere questo risultato è necessario che il nome del comando sia preceduto dal nome della libreria dei tipi associata. Ad esempio, se è stata realizzata una macro dal nome Beep, l'istruzione Beep di Visual Basic potrà essere chiamata solo tramite VBA.Beep.)

  • Assegnare nomi univoci alle macro all'interno di un singolo modulo. Visual Basic non consente di avere due macro con lo stesso nome nello stesso modulo di codice. È invece possibile avere due macro con lo stesso nome se si trovano in due moduli di codice differenti. Ad esempio, sebbene non sia possibile avere due macro con il nome Avvio nello stesso modulo di codice, è possibile avere due macro con il nome Avvio in due moduli di codice differenti. Per chiamare una macro che ha lo stesso nome di una macro in un altro modulo di codice, è necessario definire per esteso il nome della macro. (Ad esempio, Modulo1.Avvio chiama la macro Avvio nel Modulo1.)