Uppdatering av Word-fält

Simon Jones förklarar hur man behärskar begreppet fält i word, och ger en lösning för att Outlook 2007 saktar ner.

Uppdatering av Word-fält

Microsoft Word är en komplex programvara. Ett av dess mest avancerade begrepp är ”fältet”, där det som ser ut som en vanlig textbit faktiskt antingen är ett resultat som har beräknats av Word (som till exempel sidnumret eller numret på ett objekt i en lista); något som har letats upp från någon annanstans i dokumentet (med en korshänvisning, till exempel), eller som har slagits upp från dokumentets metadata (som författarens namn eller datumet då dokumentet senast skrevs ut). Fält kan användas för att bland annat göra innehållsförteckningar och register, och för att sätta sidnummer i sidhuvuden eller sidfötter.

Om du inte specifikt har låst dem uppdateras fälten i ett dokument varje gång dokumentet öppnas, och det finns ett alternativ att automatiskt uppdatera dem före utskrift. Du kan låsa ett fält genom att markera det och trycka på och du använder för att låsa upp den igen. Du kan uppdatera ett enskilt fält genom att markera det och trycka på , och om du väljer ett helt dokument genom att trycka på och tryck sedan på , kommer alla fält i dokumentet att uppdateras. I ett enkelt dokument gör detta att du kan uppdatera alla fält med bara två knapptryckningar, men affärsdokument är sällan så enkla: fält i sidhuvuden, sidfötter, textrutor, former och så vidare kommer inte att uppdateras genom att trycka på , eftersom väljer inte sådana bilagor, bara huvudtexten.

Ett Word-dokument består av en eller flera ”berättelser” och var och en har sin egen samling av fält. Huvudtexten i ett dokument är en berättelse, men det kan finnas många andra – kommentarer, slutnoter, sidhuvuden, sidfötter, fotnoter och textramar, till exempel – och om ditt dokument innehåller något av dessa måste du besöka var och en separat och Tryck för att säkerställa att du uppdaterar alla dess fält. Men det finns fortfarande mer komplikationer, eftersom varje berättelse kan länkas till en annan berättelse – textrutor kan länkas samman för att få texten i en att flyta in i en annan, och ett dokument med flera avsnitt kommer att ha många sidhuvuden och sidfötter, alla länkade till varandra . Som ett resultat kan manuell uppdatering av alla fält i ett dokument bli långrandig och som sådan har folk försökt skriva makron för att uppdatera alla fält, även om jag ännu inte har stött på ett som gör det.

Spela in ett makro medan du skriver får dig följande sparade kod:

Sub SimpleUpdateAll()

Selection.WholeStory

Urval.Fält.Uppdatering

Som du kan se väljer den hela berättelsen och uppdaterar sedan fält i urvalet, men den nämner ingen annan berättelse. Om du spelar in processen att gå in i sidfoten och sedan uppdatera dess fält som ett makro, får du den här arkaiska koden:

WordBasic.ViewFooterOnly

Selection.WholeStory

Urval.Fält.Uppdatering

WordBasic dödades av Visual Basic for Applications när Word 97 släpptes men, som du kan se, lurar fortfarande rester av det inuti makroinspelaren. Om du spelar in ett makro där du besöker varje artikel i ett dokument och uppdaterar dess fält, skulle det makrot vara specifikt för det dokumentet vid den tidpunkten i dess produktionscykel. Lägg till ytterligare ett avsnitt till dokumentet och makrot skulle inte veta om det; kör det på ett dokument som inte har några slutnoter, och makrot kraschar när du försöker välja en slutnot.

Det du behöver är loopar som kan iterera genom alla berättelser i ett dokument och de olika objekten i dessa berättelser. Lyckligtvis innehåller varje Word-dokumentobjekt en StoryRanges-samling, som innehåller de olika berättelsetyperna.

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *