Word consente di creare moduli speciali che si basano su campi per la raccolta di informazioni. Questi moduli possono essere protetti in modo che il testo al di fuori dei campi del modulo non possa essere modificato dagli utenti. Altri problemi di WordTips hanno discusso i modi in cui è possibile creare i moduli.

Quando si crea un modulo, a volte potrebbe essere necessario che Word aggiorni il contenuto dei campi calcolati all’interno del modulo. Se si seleziona la casella di controllo Aggiorna campi nella scheda Stampa della finestra di dialogo Opzioni, i campi vengono calcolati automaticamente quando viene stampato un documento. Nelle versioni di Word precedenti a Word 2000, i campi vengono calcolati automaticamente anche quando si utilizza Anteprima di stampa. (Ciò è cambiato in Word 2000; è necessaria una stampa reale.) Ma cosa succede se non si desidera stampare l’intero documento e sprecare carta solo per vedere qual è il risultato dei calcoli?

La soluzione è creare una semplice macro e assegnare la macro a un pulsante della barra degli strumenti. La seguente macro andrà benissimo:

Sub UpdateFields()

Dim rngStory As Range          For Each rngStory In ActiveDocument.StoryRanges               rngStory.Fields.Update          Next rngStory End Sub

È importante che la macro sia assegnata a un pulsante della barra degli strumenti perché un modulo protetto non consente l’accesso alle macro tramite il menu.

Questo approccio, ovviamente, richiede che l’utente si ricordi di fare clic sul pulsante per aggiornare tutti i campi. Se preferisci, puoi assegnare la macro all’evento OnExit di qualsiasi campo modulo. Pertanto, ogni volta che il campo veniva “chiuso”, la macro veniva eseguita. Un abbonato a WordTips ha anche suggerito la seguente macro come macro OnExit per aggiornare i campi:

Sub UpdateRefsInForm()

Application.ScreenUpdating = False     If ActiveWindow.View.Type = wdPageView Then         ActiveWindow.ActivePane.View.Type = wdNormalView     Else         ActiveWindow.View.Type = wdPageView     End If     If ActiveWindow.ActivePane.View.Type = wdNormalView Then         ActiveWindow.ActivePane.View.Type = wdPageView     Else         ActiveWindow.ActivePane.View.Type = wdNormalView     End If End Sub

Questa macro è piuttosto intelligente, in quanto tutto ciò che fa è passare dalla visualizzazione in cui ci si trova (visualizzazione Normale o Pagina) all’altra visualizzazione, e poi di nuovo indietro. Questa modifica nella modalità di visualizzazione impone a Word di aggiornare i campi.

_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 (1445) si applica a Microsoft Word 97, 2000, 2002 e 2003. È possibile trovare una versione di questo suggerimento per l’interfaccia a barra multifunzione di Word (Word 2007 e più tardi) qui: