Le macro, una volta che funzionano correttamente, possono semplificarci la vita. (Se non funzionano correttamente, la vita non è sicuramente facile.) Se hai una macro che fa molto lavoro per te, potresti essere interessato a provare a farla funzionare più velocemente.

Il primo compito da fare, ovviamente, è esaminare la macro e vedere se i tuoi algoritmi (il modo in cui hai deciso di fare le cose) sono il più efficienti possibile. Una volta che sei soddisfatto di ciò, puoi anche velocizzare le tue macro semplicemente mettendo più istruzioni sulla stessa riga. Considera la seguente semplice macro, che trova l’occorrenza precedente di qualcosa in un documento:

Sub PrevFind()

With Selection.Find       .ClearFormatting       .Forward = False       .Wrap = wdFindAsk       .Execute    End With End Sub

Questa macro è molto semplice. Quando si salva la macro, le istruzioni in essa contenute vengono analizzate in token a tre byte che possono essere eseguiti in modo più efficiente da VBA. (Non si vedono mai i token; si vede solo l’equivalente in linguaggio macro dei token). Quando la macro è in esecuzione, il processore dei comandi VBA afferra una riga alla volta ed esegue tutti i token su quella riga. Pertanto, in quanto precede vi sono otto linee che vengono individualmente recuperate ed eseguite dal processore.

Consideriamo ora la seguente versione della stessa macro:

Sub PrevFind()

With Selection.Find    .ClearFormatting: .Forward = False: .Wrap = wdFindAsk: .Execute End With: End Sub

Questa versione sembra molto più breve perché le singole righe sono state concatenate e separate da due punti. Ciò riduce la leggibilità della macro, ma aumenta la velocità con cui verrà eseguita. Perché?

Perché il processore dei comandi VBA cattura ancora una riga alla volta per l’elaborazione. In questo caso, ci sono solo quattro linee da afferrare. Meno “tempo di cattura” significa che l’esecuzione è più veloce. La terza riga di questa macro, che prima occupava quattro righe, viene ora elaborata come una riga singola.

Mettere più istruzioni sulla stessa riga riduce la leggibilità di una macro. A seconda delle tue esigenze, tuttavia, questo potrebbe essere un giusto compromesso per l’aumento di velocità che potresti ottenere. Dovrai provare questa tecnica nelle tue macro per vedere se ha senso per te.

_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 (1640) si applica a Microsoft Word 97, 2000, 2002 e 2003.