Finne Endringer av Editor

July 6  by Eliza

Abonnent Doris Bell spurte om det var en måte, i Word 2000, for å finne alle endringer gjort av en bestemt redaktør i et dokument som har Spor endringer slått på. Den raske svar, selvfølgelig, vil være å oppgradere til Word 2002, siden denne evnen er tilgjengelig helt fra verktøylinjen for.

Word 97 og Word 2000, derimot, er en annen historie - det du bare har evnen til å vise eller ikke vise alle sporede endringer. Hvis du vil, kan du ta opp mangel ved å lage makroer som lar deg søke etter endringer etter en bestemt redaktør. Start med å lage en bruker form i VBA Editor, ved å følge disse generelle trinnene:

  1. Vise VBA Editor ved å trykke Alt + F11.
  2. Velg Userform fra Sett inn-menyen. En tom bruker skjemaet vises i redigeringsprogrammet.
  3. Bruke Verktøykasse, plasserer en etikett kontroll i form, nær venstre side av skjemaet.
  4. I egenskapene for den nylig plassert Etikett kontroll, endre Caption egenskap til "forfatter" (uten anførselstegn).
  5. Bruke Verktøykasse, plasserer en ComboBox kontroll like til høyre på etiketten du plassert i trinn 3.
  6. I Egenskaper for ComboBox kontroll, endre navn egenskapen til "cboAuthor" (uten anførselstegn).
  7. Bruke Verktøykasse, plasserer en Command kontroll på skjemaet. Dette kan være langs den nedre kant av formen, eller på den høyre kant; det er opp til deg.
  8. I egenskapene for Command, endre navn egenskapen til "cmdFindNext" (uten anførselstegn).
  9. I egenskapene for Command, endre Caption egenskap til "Finn" (uten anførselstegn).
  10. Bruke Verktøykasse, plasserer en annen Command kontroll på skjemaet. Dette bør være enten like til høyre for den andre Command, eller like under den.
  11. I egenskapene for Command, endre navn egenskapen til "cmdExit" (uten anførselstegn).
  12. I egenskapene for Command, endre Caption egenskap til "Exit" (uten anførselstegn).
  13. Endre størrelsen på det samlede skjema for ønsket utseende.

Skjemaet er nå fullført, og alt du trenger å gjøre er å legge programkoden som vil dra nytte av disse kontrollene. Kontroller at du velger hele skjemaet og trykk F7 for å vise vinduet Kode da. Hvis det er noen kode allerede er der (VBA kan gi noen standardkoden for deg), gjerne slette den. Deretter plasserer følgende kode i vinduet Kode:

Private Sub UserForm1_Initialize ()
Dim oRevision Som Revision
Dim bExists As Boolean

bExists = False

'Gå til begynnelsen av dokumentet
Selection.HomeKey Enhet: = wdStory

'Loop gjennom revisjoner og legge til forfattere
For Hver oRevision I ActiveDocument.Revisions
Hvis Me.cboAuthor.ListCount> 0 Then
For i = 1 Til Me.cboAuthor.ListCount
Hvis Me.cboAuthor.List (i - 1) = oRevision.Author Deretter
bExists = True
End If
Neste jeg

«Hvis det ikke finnes allerede, legger forfatteren til listen
Hvis ikke bExists Deretter
Me.cboAuthor.AddItem oRevision.Author
End If

bExists = False
Else
"Legg først Forfatter til listen
Me.cboAuthor.AddItem oRevision.Author
End If
Neste oRevision
End Sub

Private Sub cmdExit_Click ()
Losse Me
End Sub

Private Sub cmdFindNext_Click ()

Dim ISTART As Integer
Dim iEnd As Integer
Dim myRange Som Range
Dim iRevisions As Integer
Dim iResponse As Integer
Dim bAuthorFound Som boolsk

'Skjul Utvalg, slik at vi ikke tar med markert tekst
Selection.Collapse wdCollapseEnd
Selection.MoveRight wdCharacter, 2

'Få Range start og sluttposisjonen
ISTART = Selection.Range.Start
iEnd = ActiveDocument.Content.End
Satt myRange = ActiveDocument.Range (Start: = ISTART, End: = iEnd)

"Tell antall revisjoner innenfor rekkevidde
iRevisions = myRange.Revisions.Count

Hvis iRevisions> 0 Deretter
'Loop gjennom alle revisjoner i serien
'Valg første funnet
For i = 1 Til iRevisions
Hvis myRange.Revisions (i) .Author = Me.cboAuthor.Text Deretter
myRange.Revisions (i) .Range.Select
bAuthorFound = True
Exit For
Else
bAuthorFound = False
End If
Neste jeg
End If

Hvis ikke bAuthorFound Deretter
«Spør om de ønsker å starte fra begynnelsen
iResponse = MsgBox ("Søk fra begynnelsen?", vbYesNo, "Finn forfatter")
Hvis iResponse = vbYes Then
«Til toppen av dokumentet
Selection.HomeKey Enhet: = wdStory
cmdFindNext_Click
Else
'Exit
Losse Me
End If
End If
End Sub

Når du senere kjøre den nye bruker form, blir du presentert med en måte å velge redaktører og finne den neste redigerings gjort av at redaktøren. Dette gjør at du kan finne ett redigere om gangen, ikke for å vise alle de endringer av en bestemt redaktør (som du kan i Word 2002).

Det er en annen tilnærming du kan ta. Du kan bruke en makro til å "trekke" alle endringer som er gjort i et dokument, og ordne dem av redaktør i et nytt dokument. Følgende makro viser hvordan du kan gjøre denne typen ting. Den resulterende bord selv indikerer hvilken type redigerings gjort i det opprinnelige dokumentet.

Option Explicit

Private Sub ShowAuthorAndRevisions ()
Dim sRevision As String
Dim oRev Som Revision
Dim oDoc Som Document
Dim ORNG Som Range

For Hver oRev I ActiveDocument.Revisions
Med oRev
sRevision = sRevision & .Author & vbTab _
& .Type & VbTab & .Range.Text & vbCrLf
Avslutt med
Neste oRev

"Åpne et nytt dokument
Set oDoc = Documents.Add
Med oDoc
.Range.InsertAfter SRevision
'Konverter revisjonene til en tabell
.Range.ConvertToTable Separator: = wdSeparateByTabs
Med .Tables (1)
'Sortere tabellen etter forfatteren (dvs. den første kolonnen)
.Range.Sort
Legg til en ny rad til begynnelsen av tabellen
.Range.Rows.Add BeforeRow:. = Range.Rows (1)
Med .Rows (1)
"Sett inn kolonnebeskrivelser
.Cells (1) .Range.Text = "forfatter"
.Cells (2) .Range.Text = "Revisjon Type"
.Cells (3) .Range.Text = "Revisjon"
Avslutt med
Avslutt med
"Sett inn et avsnittsmerke over bordet
Selection.SplitTable
'Sett inn en legende å gjøre lesing revisjonstypen lettere
.Range.InsertBefore "Revisjon Type Legend:" & vbCrLf & _
"Ingen Revision = 0" & vbCrLf & _
"Revisjon Insert = 1" & vbCrLf & _
"Revisjon Slett = 2" & vbCrLf & _
"Revisjon Eiendom = 3" & vbCrLf & _
"Revisjons ledd nr = 4" og vbCrLf & _
"Revisjon Skjerm Feltet = 5" & vbCrLf & _
"Revisjon avstemming = 6" & vbCrLf & _
"Revisjon Konflikt = 7" & vbCrLf & _
"Revisjon Style = 8" & vbCrLf & _
"Revisjon Erstatt = 9" & vbCrLf
Avslutt med
End Sub

For hver revisjon i et dokument, vil denne makroen finne revisjonen forfatter, type og tekst (hvis noen). Makroen vil deretter plassere alle revisjoner i en tabell, sortere tabellen etter navnet på forfatteren, og sette inn en liten legende som beskriver hver revisjon type.

WordTips er din kilde for kostnadseffektiv Microsoft Word trening. (Microsoft Word er den mest populære tekstbehandlingsprogrammet i verden.) Dette tipset (1303) gjelder for Microsoft Word 97, 2000, og 2002.