Jay ha una situazione in cui ha un campo delle proprietà del documento inserito in una casella di testo in un documento. Utilizzando Ctrl + A e quindi premendo F9 si dovrebbero aggiornare tutti i campi del documento di proprietà nel documento, ma questo campo non viene aggiornato dall’azione di Jay. Anche il processo per aggiornare i campi nelle intestazioni e nei piè di pagina non aggiorna il campo all’interno della casella di testo.

Jay si chiede se esiste un modo per aggiornare manualmente il campo utilizzando la tastiera o se esiste un modo per aggiornarlo utilizzando una macro.

I campi possono essere inseriti in molti elementi del documento. Possono essere, ad esempio, nel testo del documento principale, nelle caselle di testo, nelle intestazioni o nei piè di pagina, nelle forme automatiche o in tabelle speciali. Mentre si preme Ctrl + A si selezionerà tutto il documento, premendo F9 non si aggiornerà i campi in tutti gli elementi del documento. Invece, è necessario utilizzare una macro per eseguire l’aggiornamento.

Se vuoi semplicemente che una macro aggiorni i campi in una qualsiasi delle tue caselle di testo, questo è abbastanza facile da fare. La seguente macro passa attraverso ciascuna delle forme nel documento (ciò include le caselle di testo e le forme automatiche)

e, se la forma contiene testo, aggiorna i campi in essa contenuti.

Sub UpdateTBFields()

Dim shp As Shape

For Each shp In ActiveDocument.Shapes         With shp.TextFrame             If .HasText Then                 .TextRange.Fields.Update             End If         End With     Next End Sub

Questa macro potrebbe essere assegnata a una scorciatoia da tastiera in modo da poter aggiornare facilmente i campi con il tocco della scorciatoia. Naturalmente, potresti voler sviluppare una macro più comprensiva che aggiorni tutti i campi, ovunque si trovino. (Ricorda: i campi possono trovarsi in un numero qualsiasi di elementi del documento). In tal caso, considera la seguente versione più completa della macro.

Public Sub UpdateAllFields()

Dim doc As Document     Dim wnd As Window     Dim lngMain As Long     Dim lngSplit As Long     Dim lngActPane As Long     Dim rngStory As Range     Dim TOC As TableOfContents     Dim TOA As TableOfAuthorities     Dim TOF As TableOfFigures     Dim shp As Shape

' Set Objects     Set doc = ActiveDocument     Set wnd = ActiveDocument.ActiveWindow

' get Active Pane Number     lngActPane = wnd.ActivePane.Index

' Hold View Type of Main pane     lngMain = wnd.Panes(1).View.Type

' Hold SplitSpecial     lngSplit = wnd.View.SplitSpecial

' Get Rid of any split     wnd.View.SplitSpecial = wdPaneNone

' Set View to Normal     wnd.View.Type = wdNormalView

' Loop through each story in doc to update     For Each rngStory In doc.StoryRanges         If rngStory.StoryType = wdCommentsStory Then             Application.DisplayAlerts = wdAlertsNone             ' Update fields             rngStory.Fields.Update             Application.DisplayAlerts = wdAlertsAll         Else             ' Update fields             rngStory.Fields.Update         End If     Next

'Loop through text boxes and update     For Each shp In doc.Shapes         With shp.TextFrame             If .HasText Then                 shp.TextFrame.TextRange.Fields.Update             End If         End With     Next

' Loop through TOC and update     For Each TOC In doc.TablesOfContents         TOC.Update     Next

' Loop through TOA and update     For Each TOA In doc.TablesOfAuthorities         TOA.Update     Next

' Loop through TOF and update     For Each TOF In doc.TablesOfFigures         TOF.Update     Next

' Return Split to original state     wnd.View.SplitSpecial = lngSplit

' Return main pane to original state     wnd.Panes(1).View.Type = lngMain

' Active proper pane     wnd.Panes(lngActPane).Activate

' Close and release all pointers     Set wnd = Nothing     Set doc = Nothing End Sub

_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 (12344) 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: