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 Normale come progetto “Normale”

) I riferimenti tra i progetti forniscono una definizione non ambigua collegamento 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.dotm 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é è meglio avere un nome di progetto univoco quando si desidera essere specifici sulla macro da eseguire. Per assegnare a CoolDoc.dotm un nome di progetto univoco, segui questi passaggi:

  1. Assicurati che il modello CoolDoc.dotm sia aperto.

  2. Visualizza l’editor VBA premendo Alt + F11.

  3. Nella finestra Progetto in alto a sinistra dell’editor VBA, fai clic con il pulsante destro del mouse sulla cartella per il modello. Poiché CoolDoc è un modello, la cartella si chiama TemplateProject (CoolDoc). Word visualizza un menu contestuale.

  4. Scegli l’opzione Proprietà TemplateProject dal menu contestuale.

Viene visualizzata la finestra di dialogo Proprietà.

  1. Nel campo Nome progetto, inserisci un nome adatto per il tuo progetto.

(CoolDoc sarebbe un bel nome, purché sia ​​unico.)

  1. 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 verranno usati a breve. A questo punto, devi solo 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):

  1. Nella finestra Progetto in alto a sinistra nell’editor VBA, seleziona la cartella Normale.

  2. Scegli Riferimenti dal menu Strumenti. Viene visualizzata la finestra di dialogo Riferimenti. (Vedi figura 1.)

  3. Nell’elenco dei riferimenti disponibili, trova CoolDoc.

  4. Assicurati che la casella di controllo a sinistra dell’opzione CoolDoc sia selezionata.

  5. Fare clic su OK.

Infine, sei pronto per aggiungere l’istruzione Call alla macro da cui desideri chiamare MyMacro. La riga di comando apparirà come segue:

Call CoolDoc.HotStuff.MyMacro

Questa riga di comando fa in modo 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.dotm.

Questo caricamento di CoolDoc solleva una domanda ovvia: qual è il punto, in VBA, di mettere MyMacro in CoolDoc.dotm poiché non farà risparmiare tempo di caricamento o utilizzo delle risorse? La risposta breve è che non ha alcun punto, a parte CoolDoc.dotm che potrebbe essere un posto più ovvio in cui inserire codice che si riferisce solo alle cose in CoolDoc.dotm. (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 (11412) si applica a Microsoft Word 2007, 2010, 2013, 2016, 2019 e Word in Office 365. Puoi trovare una versione di questo suggerimento per vecchia interfaccia del menu di Word qui: