William ha bisogno di inserire il nome del file in una tabella che si trova in una casella di testo nel piè di pagina di un documento (è un requisito del cliente per farlo in questo modo).

Vuole che il nome del file si aggiorni automaticamente ogni volta che salva il documento, o almeno quando usa “Salva con nome” per creare un nuovo file.

William ha inserito un campo FILENAME, ma deve comunque ricordarsi di aprire il piè di pagina e fare clic lì e premere F9 per aggiornarlo. Preferirebbe che lo facesse automaticamente.

Storicamente, Word è stato sviluppato con la consapevolezza che i tuoi documenti alla fine sarebbero stati stampati. (Questo era prima dei giorni in cui si eseguivano la maggior parte delle attività online, elettronicamente.) Uno degli artefatti relativi a questa comprensione storica è che Word non aggiorna i campi finché non si va in stampa. Pertanto, i campi non vengono aggiornati quando si eseguono altre attività, come il salvataggio o l’utilizzo di Salva con nome.

Tenendo presente questa comprensione, ci sono un paio di cose che puoi fare. Il primo è indurre Word a pensare che stai stampando. Prima di fare questo “trucco”, tuttavia, ti consigliamo di seguire questi passaggi:

  1. Visualizza la finestra di dialogo Opzioni di Word. (In Word 2007 fare clic sul pulsante Office e quindi su Opzioni di Word. In Word 2010 e versioni successive, visualizzare la scheda File della barra multifunzione e quindi fare clic su Opzioni.) || . A sinistra della finestra di dialogo fare clic su Visualizza. (Vedi figura 1.)

  2. Assicurati che la casella di controllo Aggiorna campi prima della stampa sia selezionata.

  3. Fare clic su Avanzate sul lato sinistro della finestra di dialogo.

  4. Scorri verso il basso fino a visualizzare la sezione Stampa. (Vedi figura 2.)

  5. Assicurarsi che la casella di controllo Consenti campi contenenti modifiche rilevate da aggiornare prima della stampa sia selezionata.

  6. Fare clic su OK per salvare le modifiche.

Ora, tutto ciò che devi fare quando vuoi aggiornare i campi è premere Ctrl + P. Viene visualizzata la finestra di dialogo Stampa (Word 2007) o le opzioni di stampa (versioni successive di Word). Una volta arrivati ​​a questo punto, i campi del documento dovrebbero essere aggiornati perché Word prevede che stiate per stampare. È possibile premere Esc o fare clic sulla scheda Home della barra multifunzione per abbandonare la stampa e tenere presente che tutti i campi del documento vengono aggiornati.

È inoltre possibile utilizzare una macro per eseguire queste attività. La seguente macro non modifica le impostazioni nella finestra di dialogo Opzioni di Word, ma esegue quel tanto che basta della sequenza di stampa che induce Word ad aggiornare i campi.

Sub UpdateAllFields()

With ActiveDocument         .PrintPreview         .ClosePrintPreview     End With End Sub

C’è un altro approccio macro che puoi adottare, se lo desideri. Questo approccio aggira ogni inganno e, invece, passa attraverso ciascuna delle “storie”

in un documento e aggiorna tutti i campi trovati in quelle storie. (Una “storia”

è vista al meglio come un livello nel tuo documento. Il documento principale è una storia, intestazioni e piè di pagina un’altra, un’altra grafica e così via.) In realtà ci sono due macro usate in questo approccio; eseguire la macro UpdateAllFields per avviare il processo di aggiornamento.

Sub UpdateAllFields()

Dim objStory As Range     Dim objTOC As TableOfContents     Dim objTOA As TableOfAuthorities     Dim objTOF As TableOfFigures     Dim objIndex As Index

Application.ScreenUpdating = False     Application.DisplayAlerts = wdAlertsNone

For Each objStory In ActiveDocument.StoryRanges         UpdateFieldsInStory objStory

While Not (objStory.NextStoryRange Is Nothing)

Set objStory = objStory.NextStoryRange             UpdateFieldsInStory objStory         Wend     Next             For Each objTOC In ActiveDocument.TablesOfContents         objTOC.Update     Next

For Each objTOA In ActiveDocument.TablesOfAuthorities         objTOA.Update     Next

For Each objTOF In ActiveDocument.TablesOfFigures         objTOF.Update     Next

For Each objIndex In ActiveDocument.Indexes         objIndex.Update     Next

Application.DisplayAlerts = wdAlertsAll     Application.ScreenUpdating = True End Sub
Private Sub UpdateFieldsInStory(iobjStory As Range)

Dim objShape As Shape

With iobjStory         .Fields.Update

Select Case .StoryType             Case wdMainTextStory, wdPrimaryHeaderStory, _               wdPrimaryFooterStory, wdEvenPagesHeaderStory, _               wdEvenPagesFooterStory, wdFirstPageHeaderStory, _               wdFirstPageFooterStory

For Each objShape In .ShapeRange                     With objShape.TextFrame                         If .HasText Then .TextRange.Fields.Update                     End With                 Next         End Select     End With End Sub

Se desideri ottenere ulteriori informazioni sull’aggiornamento dei campi utilizzando le macro, potresti visitare questa pagina sul sito di Greg Maxey; prestare particolare attenzione alla sezione intitolata “Campi Aggiornamento”:

http://gregmaxey.mvps.org/word_tip_pages/word_fields.html

Come puoi vedere, non è necessariamente facile aggiornare tutti i campi in un documento. Sembrerebbe che Microsoft potrebbe facilmente aggiungere una tale capacità, ma anche con molti anni sotto il ponte, Word manca ancora di tale capacità. Se desideri che Microsoft aggiunga la funzionalità, puoi visitare il loro forum UserVoice e votare per tale funzionalità:

https://word.uservoice.com/forums/304924-word-for-windows-desktop-application/suggestions/11685894

_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.

link: / wordribbon-WordTipsMacros [Fare clic qui per aprire quella pagina speciale in una nuova scheda del browser].

WordTips è la tua fonte di formazione economica su Microsoft Word.

(Microsoft Word è il software di elaborazione testi più popolare al mondo.) Questo suggerimento (13475) si applica a Microsoft Word 2007, 2010, 2013 e 2016.