Aggiornamento dei campi calcolati in un modulo (Microsoft Word)
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: