Vai al contenuto

Registrare, eseguire e modificare le macro VBA

È possibile creare ed eseguire macro di Visual Basic for Application (VBA) per semplificare e rendere automatiche le attività ripetitive.

Esecuzione di macro VBA

È possibile eseguire macro VBA salvate nel file documento della sessione dal Pannello macro. In questo modo è possibile tenere traccia ed eseguire le macro senza aggiungere pulsanti alla barra multifunzione. È inoltre possibile eseguire altri tipi di macro da questo pannello dopo averle eseguite dalla finestra di dialogo Esegui macro.

Esecuzione di macro con il Pannello macro

È possibile utilizzare il Pannello macro per eseguire le macro VBA salvate nel file del documento di sessione oppure per eseguire altre macro, ad esempio macro a cui viene fatto riferimento, macro EML o macro create con altri prodotti che sono state già eseguite in tale sessione. Il Pannello macro rappresenta un modo pratico per tenere traccia ed eseguire le macro che si applicano a una sessione senza l'aggiunta di pulsanti alla barra multifunzione. Vengono mostrate solo le macro che si applicano alla sessione a cui è stato assegnato il focus.

Utilizzare il Pannello macro

Per eseguire macro dal Pannello macro

  1. Nel gruppo Macro della scheda Sessione, fare clic su Show Macro Panel (Mostra Pannello macro).

    Il Pannello macro presenta tre schede:

    La scheda Disponibile mostra le macro VBA che vengono salvate nel file del documento di sessione.

    nota

    La scheda Disponibile non visualizza le macro EML, le macro create con altri prodotti o altre macro non salvate nel file del documento di sessione.

    La scheda Recent (Recenti) mostra tutte le macro già eseguite in questa sessione. Sono incluse le macro VBA e altre macro supportate che sono state eseguite, ad esempio macro EML o macro create con altri prodotti.

    La scheda Favorites (Preferiti) mostra tutte le macro contrassegnate come preferite.

  2. Per eseguire una macro, portare il mouse sulla macro che si desidera eseguire, quindi sul pulsante Riproduci sul lato sinistro della macro.

  3. Per interrompere una macro, fare clic sul pulsante Interrompi accanto alla macro.

  4. Per ottenere ulteriori informazioni sulla macro, portare il mouse sulla macro.

    Per le macro VBA, una descrizione comandi mostra il progetto e il modulo VBA in cui si trova la macro.

    Per le altre macro, una descrizione comandi mostra il tipo di macro e il nome completo del file.

Esecuzione di macro dalla finestra di dialogo Esegui macro

Sarà necessario utilizzare la finestra di dialogo Esegui macro per eseguire per la prima volta le macro non salvate nel file documento della sessione. Dopo la prima esecuzione della macro, è possibile eseguirla dalla scheda Recenti del Pannello macro.

Per eseguire una macro dalla finestra di dialogo Esegui macro

  1. Aprire la finestra di dialogo Esegui macro. I passaggi dipendono dalla modalità dell'interfaccia utente.

    Modalità dell'interfaccia utente Passaggi
    Barra multifunzione Nella scheda Sessione, nel gruppo Macro, fare clic su Esegui macro.
    Classica e MDI classica Dal menu Macro, scegliere Macro.
  2. Selezionare il tipo di macro che si desidera eseguire e selezionare la macro per aprirla.

    La macro viene eseguita.

    nota

    Dopo la prima esecuzione della macro, è possibile eseguirla dalla scheda Recenti del Pannello macro.

Esecuzione di macro create in altri prodotti

È possibile eseguire le macro VBA create in Reflection e la maggior parte delle macro create con Extra! e i prodotti di Reflection precedenti. È inoltre possibile eseguire la maggior parte delle macro create con Open Text Rumba, IBM Personal Communications, OpenText HostExplorer e prodotti Brandon Systems/Jolly Giant QWS 3270. Tuttavia è possibile eseguire le macro solo nei percorsi attendibili.

 Esecuzione di macro Extra! in Reflection Desktop

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 le macro create con altri prodotti

  1. Aprire la finestra di dialogo Esegui macro. I passaggi dipendono dalla modalità dell'interfaccia utente.

    Modalità dell'interfaccia utente Passaggi
    Barra multifunzione Reflection Nella scheda Macro, nel gruppo Avanzate, fare clic su Esegui macro.
    Browser di Reflection Nel menu Reflection, scegliere Strumenti, Macro, quindi Esegui macro.
    TouchUx Toccare l'icona chiave inglese, quindi in Macro, selezionare Mostra la finestra Esegui macro.
  2. Nella finestra di dialogo Esegui macro, selezionare la macro da eseguire.

    Selezionare Per...
    Macro Reflection Workspace Mostrare le macro nel documento della sessione attiva. Selezionare per eseguire macro create nei documenti della sessione di Reflection.
    Eseguire una macro nel progetto Comune e in altri documenti, selezionare l'opzione dal menu Macro in:
    Macro di una versione precedente di Reflection nel file corrente Eseguire le macro di versioni precedenti nel documento attivo. Queste macro includono i file di impostazioni di versioni precedenti (..rsf, .r2w oppure .r4w) e, in Reflection, documenti delle sessioni (..rd3x, .rd5x, .rdox) precedentemente convertiti da file di impostazioni.
    Macro di una versione precedente di Reflection in un altro file 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 Specificare ed eseguire una macro di Reflection Basic (.rbs).
    Script di una versione precedente di RCL Specificare ed eseguire uno script di una versione precedente di RCL. Disponibile per l'utilizzo solo nei documenti di sessioni VT.
    Extra! Macro Specificare ed eseguire un file macro di Extra! (.ebm).
    Macro QWS Specificare ed eseguire un file di macro di Brandon Systems\Jolly Giant QWS3270 (.jgs).
    Macro IBM Personal Communications Specificare ed eseguire un file di macro di IBM Personal Communications (.mac).

    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 di Extra! e delle versioni precedenti di Reflection da file esterni, è necessario specificare, dalla finestra di dialogo Configura protezione API e macro, il tipo di macro delle versioni precedenti che si desidera eseguire.

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

Registrazione ed eliminazione di 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).

Come registrare una macro quando si utilizza la Barra multifunzione di Reflection Desktop

Come registrare una macro quando si utilizza l'interfaccia Classica di Reflection Desktop

Best practice per la registrazione di macro

Attenersi alle seguenti best practice per registrare con attenzione la macro ed evitare problemi che possono verificarsi occasionalmente quando si utilizza una connessione di rete più lenta. In caso di connessione di rete lenta, la digitazione molto veloce durante la registrazione o il type ahead in una sessione possono causare un comportamento imprevisto della macro. Attenendosi a queste best practice sarà possibile ottenere risultati ottimali.

  • Pianificare in anticipo la registrazione per essere certi di conoscere i passaggi da eseguire, i tasti da premere e le schermate host previste.

  • Durante la registrazione della macro, dopo aver premuto un tasto per inviare i dati all'host, attendere la visualizzazione completa della schermata host successiva (talvolta è necessario qualche secondo in più) prima di premere i tasti successivi.

  • Se la macro non viene riprodotta come previsto, eliminarla e registrarla di nuovo con attenzione effettuando passaggi lenti e intenzionali.

La velocità con cui viene registrata una macro non influisce sulle prestazioni dell'esecuzione della macro, poiché le macro vengono sempre riprodotte alla velocità massima possibile. La registrazione di una macro ben progettata e pianificata porterà a risultati ottimali.

Per registrare una macro

  1. Scegliere di registrare una macro. I passaggi dipendono dalla modalità dell'interfaccia utente.

    Modalità dell'interfaccia utente Passaggi
    Barra multifunzione Nella scheda Macro, nel gruppo Avanzate, fare clic su Registra VBA.
    Browser di Reflection Nel menu Reflection, scegliere Strumenti, Macro, quindi Registra macro VBA.
    TouchUx Toccare l'icona chiave inglese, quindi sotto Macro selezionare Registra macro VBA.
  2. Eseguire le attività che si desidera automatizzare.

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

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

    Viene visualizzata la finestra di dialogo Registrazione completata.

  5. Assegnare un nome alla macro e scegliere il percorso in cui si desidera salvarla.

  6. Se si desidera eseguire la macro ad ogni connessione della sessione, selezionare Imposta come Macro di connessione.

    nota

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

  7. Se la macro non viene riprodotta come previsto, eliminarla e attenersi alle best practice per registrarla di nuovo con attenzione.

Per eliminare una macro

  1. Aprire la finestra di dialogo Esegui macro. I passaggi dipendono dalla modalità dell'interfaccia utente.

    Modalità dell'interfaccia utente Passaggi
    Barra multifunzione Nella scheda Sessione, nel gruppo Macro, fare clic su Esegui macro.
    Classica e MDI classica Dal menu Macro, scegliere Macro.
  2. Selezionare Macro Reflection Workspace.

  3. Nella finestra di dialogo Macro, selezionare la macro che si desidera rimuovere, quindi fare clic su Elimina.

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. Aprire Visual Basic Editor. I passaggi dipendono dalla modalità dell'interfaccia utente.

    Modalità dell'interfaccia utente Passaggi
    Barra multifunzione Reflection Nella scheda Macro, fare clic su Visual Basic.
    Browser di Reflection Nel menu Reflection, scegliere Strumenti, Macro, quindi Visual Basic.
    TouchUx Toccare l'icona Chiave inglese, quindi sotto Macro selezionare Visual Basic.

    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.

Modifica di una macro

Utilizzare Visual Basic Editor per modificare le macro di Reflection.

Per modificare una macro

  1. Aprire Visual Basic Editor. I passaggi dipendono dalla modalità dell'interfaccia utente.

    Modalità dell'interfaccia utente Passaggi
    Barra multifunzione Reflection Nella scheda Macro, fare clic su Visual Basic.
    Browser di Reflection Nel menu Reflection, scegliere Strumenti, Macro, quindi Visual Basic.
    TouchUx Toccare l'icona Chiave inglese, quindi sotto Macro selezionare Visual Basic.

    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.

Esecuzione di una macro di avvio

È possibile impostare una macro di Visual Basic for Application (VBA) in modo che venga eseguita all'avvio dello spazio 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 dello spazio di lavoro solo le macro nel progetto Comune. Non configurare l'azione "Esegui macro Reflection Workspace" 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. Aprire la finestra di dialogo Impostazioni Area di lavoro di Reflection. I passaggi dipendono dalla modalità dell'interfaccia utente.

    Modalità dell'interfaccia utente Passaggi
    Barra multifunzione Nel menu File o dal pulsante Reflection (se si utilizza l'interfaccia di Office 2007), scegliere Impostazioni Area di lavoro di Reflection.
    Browser di Reflection Nel menu Reflection scegliere Impostazioni, quindi Impostazioni Area di lavoro di Reflection.
    TouchUx Toccare l'icona Ingranaggi e selezionare Impostazioni Area di lavoro di Reflection.
  2. In Impostazioni Area di lavoro, fare clic su Configura Impostazioni area di lavoro.

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

  4. Fare clic su Seleziona azione.

  5. In Azione, selezionare Esegui macro Reflection Workspace.

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

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

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

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

Per impostare una macro alla connessione

  1. Aprire la finestra Impostazioni. I passaggi dipendono dalla modalità dell'interfaccia utente.

    Modalità dell'interfaccia utente Passaggi
    Barra multifunzione oppure Browser di Reflection Con una sessione aperta in Reflection, nella Barra di accesso rapido, fare clic su .
    TouchUx Toccare l'icona Ingranaggi e selezionare Impostazioni dei documenti.
  2. 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.

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

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

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