Utilizzo della chiamata per eseguire macro VBA (Microsoft Word)
Sebbene sia possibile eseguire una macro VBA da un’altra macro utilizzando l’approccio presentato nel suggerimento precedente, ci sono momenti in cui un tale approccio semplicemente non farà il lavoro. Invece, è necessario cercare una soluzione che consenta un metodo a prova di errore per eseguire una macro. Un approccio consiste nell’utilizzare il comando Chiama in VBA. Prima di poter utilizzare il comando, tuttavia, è necessario aggiungere un riferimento al progetto chiamante. (I progetti sono il modo in cui VBA si riferisce alla raccolta di moduli, moduli, ecc. VBA in un modello. Ad esempio, VBA si riferisce al modello Normal.dot come progetto “Normale”.) I riferimenti tra i progetti forniscono un collegamento definito inequivocabile tra un progetto chiamante e il progetto da chiamare.
Ad esempio, diciamo che la macro MyMacro (quella che volevi eseguire) faceva parte del modello CoolDoc. Per utilizzare Call correttamente in VBA, è necessario aggiungere un riferimento al progetto CoolDoc.dot alla macro che chiamerà MyMacro. Sfortunatamente, questo è un po ‘più facile a dirsi che a farsi a causa di un potenziale “gottcha” in VBA: Diverso dal “Normale”
progetto, VBA assegna a tutti i progetti modello creati dall’utente il nome di progetto predefinito “TemplateProject”. Ciò può creare problemi poiché è preferibile avere un nome di progetto univoco quando si desidera essere specifici sulla macro da eseguire. Per dare a CoolDoc.dot un nome univoco al progetto, segui questi passaggi:
-
Assicurati che il modello CoolDoc.dot sia aperto.
-
Visualizza l’editor VBA premendo Alt + F11.
-
Nella finestra Progetto in alto a sinistra dell’editor VBA, fai clic con il pulsante destro del mouse sulla cartella per il modello. La cartella verrà denominata Project (CoolDoc). Word visualizza un menu contestuale.
-
Scegli l’opzione Proprietà progetto dal menu contestuale. Viene visualizzata la finestra di dialogo Proprietà.
-
Nel campo Nome progetto, inserisci un nome adatto per il tuo progetto.
(CoolDoc sarebbe un bel nome, purché sia unico.)
-
Fare clic su OK. La finestra di dialogo scompare e il progetto viene rinominato CoolDoc.
Se espandi tutti gli oggetti sotto CoolDoc, dovresti vedere uno o due moduli nel progetto. (Ricorda; le macro VBA sono contenute nei moduli.) Per il bene di questa discussione, supponiamo che MyMacro (quello che vuoi eseguire) sia contenuto nel modulo HotStuff del progetto CoolDoc.
(Tutti questi nomi di oggetti saranno usati a breve. A questo punto ti basterà annotare i nomi usati per il tuo progetto e il modulo con la macro.)
Ora sei pronto per aggiungere effettivamente il riferimento al progetto CoolDoc al progetto da cui verrà chiamata la macro. In questo caso, supponiamo che lo chiamerai da una macro nel progetto Normal. Puoi aggiungere il riferimento seguendo questi passaggi (supponendo che l’editor VBA sia ancora aperto):
-
Nella finestra Progetto in alto a sinistra dell’editor VBA, seleziona la cartella Normale.
-
Scegli Riferimenti dal menu Strumenti. Viene visualizzata la finestra di dialogo Riferimenti. (Vedi figura 1.)
-
Nell’elenco dei riferimenti disponibili, trova CoolDoc.
-
Assicurati che la casella di controllo a sinistra dell’opzione CoolDoc sia selezionata.
-
Fare clic su OK.
Finalmente sei pronto per aggiungere l’istruzione Call alla macro da cui vuoi chiamare MyMacro. La riga di comando apparirà come segue:
Call CoolDoc.HotStuff.MyMacro
Questa riga di comando fa sì che VBA esegua la macro desiderata, senza alcuna possibilità di ambiguità. Tuttavia, c’è qualcosa di importante da notare.
Mettendo un riferimento al progetto CoolDoc in Normale, Normale carica una copia di CoolDoc ogni volta che si avvia Word, anche se non ci sono documenti aperti basati sul modello CoolDoc.dot.
Questo caricamento di CoolDoc solleva una domanda ovvia: qual è il punto, in VBA, di mettere MyMacro in CoolDoc.dot poiché non farà risparmiare tempo di caricamento o utilizzo delle risorse? La risposta breve è che non ha alcun punto, a parte CoolDoc.dot che potrebbe essere un posto più ovvio in cui inserire codice che si riferisce solo alle cose in CoolDoc.dot. (L’intero argomento del design ragionevole del progetto è un argomento troppo grande per discutere in questo singolo suggerimento.)
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti WordTips), ho preparato una pagina speciale che include informazioni utili.
WordTips è la tua fonte di formazione economica su Microsoft Word.
(Microsoft Word è il software di elaborazione testi più popolare al mondo.) Questo suggerimento (86) si applica a Microsoft Word 97, 2000, 2002 e 2003. È possibile trovare una versione di questo suggerimento per l’interfaccia della barra multifunzione di Word (Word 2007 e più tardi) qui: