Göra Makron köra snabbare

August 25

Makron, när de kör rätt, kan göra våra liv enklare. (Om de inte kör rätt, livet är definitivt inte lätt.) Om du har ett makro som gör en hel del arbete för dig, du kan vara intresserad av att försöka göra det springa snabbare.

Den första uppgiften att göra, naturligtvis, är att undersöka makrot och se om dina algoritmer (det sätt du valt att göra saker) är så effektiva som de kan vara. När du är nöjd att de är, kan du också snabba upp dina makron genom att helt enkelt sätta flera uttalanden på samma linje. Tänk dig följande enkla makro, som finner föregående förekomst av något i ett dokument:

Sub PrevFind ()
Med Selection.Find
.ClearFormatting
.forward = False
.Wrap = WdFindAsk
.Execute
End Med
End Sub

Detta makro är mycket enkelt. När du sparar makrot är de uttalanden som den innehåller tolkas ner till tre-byte polletter som kan köras mer effektivt genom VBA. (Du ser aldrig de polletter, du bara ser makrospråk motsvarighet till tokens.) När makrot körs, griper tag i VBA instruktionsprocessom en rad i taget och utför alla tokens på den linjen. Således, i det föregående finns det åtta rader som är individuellt hämtas och exekveras av processorn.

Nu överväga följande version av samma makro:

Sub PrevFind ()
Med Selection.Find
.ClearFormatting: .forward = False: .Wrap = wdFindAsk: .Execute
Avsluta med: End Sub

Denna version verkar mycket kortare eftersom enskilda linjer har sammanlänkade och separeras med ett kolon. Detta minskar läsbarhet makrot, men det ökar den hastighet med vilken det kommer att köras. Varför? Eftersom VBA instruktionsprocessom fortfarande tar en rad i taget för att bearbeta. I det här fallet finns det bara fyra rader för att greppa. Mindre "ta tag" avses att utförandet är snabbare. Den tredje raden i denna makro, vilket används för att ockupera fyra rader, nu bearbetas som en enda rad.

Att sätta flera uttalanden på samma linje inte minskar läsbarheten ett makro. Beroende på dina behov, men detta kan vara en rättvis avvägning för hastighetsökningen som du kan uppnå. Du måste prova den här tekniken i dina egna makron för att se om det är vettigt för dig.

WordTips är din källa för kostnadseffektiv Microsoft Word utbildning. (Microsoft Word är det mest populära ordbehandlingsprogram i världen.) Detta tips (1640) gäller för Microsoft Word 97, 2000, 2002, och 2003.