Die Abonnentin Doris Bell fragte, ob es in Word 2000 eine Möglichkeit gibt, alle von einem bestimmten Editor vorgenommenen Änderungen in einem Dokument zu finden, in dem Änderungen verfolgen aktiviert ist. Die schnelle Antwort wäre natürlich ein Upgrade auf Word 2002, da diese Funktion direkt in der Überprüfungssymbolleiste verfügbar ist.

Word 97 und Word 2000 sind jedoch eine andere Geschichte – dort können Sie nur alle nachverfolgten Änderungen anzeigen oder nicht anzeigen. Falls gewünscht, können Sie den Mangel beheben, indem Sie Makros erstellen, mit denen Sie nach Änderungen durch einen bestimmten Editor suchen können. Beginnen Sie mit dem Erstellen eines Benutzerformulars im VBA-Editor, indem Sie die folgenden allgemeinen Schritte ausführen:

  1. Zeigen Sie den VBA-Editor an, indem Sie Alt + F11 drücken.

  2. Wählen Sie UserForm aus dem Menü Einfügen. Im Editor wird ein leeres Benutzerformular angezeigt.

  3. Platzieren Sie mithilfe der Toolbox ein Beschriftungssteuerelement im Formular nahe der linken Seite des Formulars.

  4. Ändern Sie in den Eigenschaften für das neu platzierte Label-Steuerelement die Caption-Eigenschaft in „Author“ (ohne Anführungszeichen).

  5. Platzieren Sie mithilfe der Toolbox ein ComboBox-Steuerelement rechts neben der Beschriftung, die Sie in Schritt 3 platziert haben.

  6. Ändern Sie in den Eigenschaften für das ComboBox-Steuerelement die Name-Eigenschaft in „cboAuthor“ (ohne Anführungszeichen).

  7. Platzieren Sie mithilfe der Toolbox ein CommandButton-Steuerelement im Formular. Dies kann am unteren Rand des Formulars oder am rechten Rand erfolgen. es liegt an dir.

  8. Ändern Sie in den Eigenschaften für das CommandButton-Steuerelement die Name-Eigenschaft in „cmdFindNext“ (ohne Anführungszeichen).

  9. Ändern Sie in den Eigenschaften für das CommandButton-Steuerelement die Caption-Eigenschaft in „Suchen“ (ohne Anführungszeichen).

  10. Platzieren Sie mithilfe der Toolbox ein weiteres CommandButton-Steuerelement im Formular.

Dies sollte sich entweder rechts neben dem anderen CommandButton-Steuerelement oder direkt darunter befinden.

  1. Ändern Sie in den Eigenschaften für das CommandButton-Steuerelement die Name-Eigenschaft in „cmdExit“ (ohne Anführungszeichen).

  2. Ändern Sie in den Eigenschaften für das CommandButton-Steuerelement die Caption-Eigenschaft in „Exit“ (ohne Anführungszeichen).

  3. Passen Sie die Größe Ihres Gesamtformulars an das gewünschte Erscheinungsbild an.

Ihr Formular ist jetzt vollständig und Sie müssen lediglich den Programmcode hinzufügen, der diese Steuerelemente nutzt. Stellen Sie sicher, dass Sie das gesamte Formular auswählen, und drücken Sie dann F7, um das Codefenster anzuzeigen. Wenn bereits Code vorhanden ist (VBA stellt möglicherweise einen Standardcode für Sie bereit), können Sie diesen jederzeit löschen. Fügen Sie dann den folgenden Code in das Codefenster ein:

Private Sub UserForm1_Initialize()

Dim oRevision As Revision     Dim bExists As Boolean

bExists = False

' Go to beginning of document     Selection.HomeKey Unit:=wdStory

' Loop through revisions and add authors     For Each oRevision In ActiveDocument.Revisions         If Me.cboAuthor.ListCount > 0 Then             For i = 1 To Me.cboAuthor.ListCount                 If Me.cboAuthor.List(i - 1) = oRevision.Author Then                     bExists = True                 End If             Next i

' If it doesn't already exist, add the author to list             If Not bExists Then                 Me.cboAuthor.AddItem oRevision.Author             End If

bExists = False         Else             ' Add first Author to the list             Me.cboAuthor.AddItem oRevision.Author         End If     Next oRevision End Sub

Private Sub cmdExit_Click()

Unload Me End Sub

Private Sub cmdFindNext_Click()



Dim iStart As Integer     Dim iEnd As Integer     Dim myRange As Range     Dim iRevisions As Integer     Dim iResponse As Integer     Dim bAuthorFound As Boolean

' Collapse the Selection so that we don't include selected text     Selection.Collapse wdCollapseEnd     Selection.MoveRight wdCharacter, 2

' Get the Range start and end positions     iStart = Selection.Range.Start     iEnd = ActiveDocument.Content.End     Set myRange = ActiveDocument.Range(Start:=iStart, End:=iEnd)



' Count total number of revisions within range     iRevisions = myRange.Revisions.Count

If iRevisions > 0 Then         ' Loop through all revisions in the range          ' selecting first one found         For i = 1 To iRevisions             If myRange.Revisions(i).Author = Me.cboAuthor.Text Then                 myRange.Revisions(i).Range.Select                 bAuthorFound = True                 Exit For             Else                 bAuthorFound = False             End If         Next i     End If

If Not bAuthorFound Then         ' Ask if they would like to start from the beginning         iResponse = MsgBox("Search from beginning?", vbYesNo, "Find Author")

If iResponse = vbYes Then             ' Go to top of document             Selection.HomeKey Unit:=wdStory             cmdFindNext_Click         Else             ' Exit             Unload Me         End If     End If End Sub

Wenn Sie später Ihr neues Benutzerformular ausführen, wird Ihnen eine Möglichkeit angezeigt, Editoren auszuwählen und die nächste von diesem Editor vorgenommene Bearbeitung zu finden. Auf diese Weise können Sie jeweils eine Bearbeitung finden und nicht alle Änderungen eines bestimmten Editors anzeigen (wie in Word 2002).

Sie können einen anderen Ansatz wählen. Sie können ein Makro verwenden, um alle in einem Dokument vorgenommenen Änderungen zu „ziehen“ und sie nach Editor in einem neuen Dokument anzuordnen. Das folgende Makro zeigt, wie Sie so etwas tun können. Die resultierende Tabelle zeigt sogar die Art der Bearbeitung im Originaldokument an.

Option Explicit

Private Sub ShowAuthorAndRevisions()

Dim sRevision As String     Dim oRev As Revision     Dim oDoc As Document     Dim oRng As Range

For Each oRev In ActiveDocument.Revisions         With oRev             sRevision = sRevision & .Author & vbTab _               & .Type & vbTab & .Range.Text & vbCrLf         End With     Next oRev

' Open a new document     Set oDoc = Documents.Add     With oDoc         .Range.InsertAfter sRevision         ' Convert the revisions to a table         .Range.ConvertToTable Separator:=wdSeparateByTabs         With .Tables(1)

' Sort the table by the author (i.e., the first column)

.Range.Sort             ' Add a new row to the beginning of the table             .Range.Rows.Add BeforeRow:=.Range.Rows(1)

With .Rows(1)

' insert column descriptions                 .Cells(1).Range.Text = "Author"

.Cells(2).Range.Text = "Revision Type"

.Cells(3).Range.Text = "Revision"

End With         End With         ' insert a paragraph mark above the table         Selection.SplitTable         ' Insert a legend to make reading the revision type easier         .Range.InsertBefore "Revision Type Legend:" & vbCrLf & _             "No Revision = 0 " & vbCrLf & _             "Revision Insert = 1 " & vbCrLf & _             "Revision Delete = 2 " & vbCrLf & _             "Revision Property = 3 " & vbCrLf & _             "Revision Paragraph Number = 4 " & vbCrLf & _             "Revision Display Field = 5 " & vbCrLf & _             "Revision Reconcile = 6 " & vbCrLf & _             "Revision Conflict = 7 " & vbCrLf & _             "Revision Style = 8 " & vbCrLf & _             "Revision Replace = 9 " & vbCrLf     End With End Sub

Für jede Revision in einem Dokument findet dieses Makro den Autor, den Typ und den Text der Revision (falls vorhanden). Das Makro platziert dann alle Revisionen in einer Tabelle, sortiert die Tabelle nach dem Namen des Autors und fügt eine kleine Legende ein, die jeden Revisionstyp beschreibt.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.

(Microsoft Word ist die beliebteste Textverarbeitungssoftware der Welt.) Dieser Tipp (1303) gilt für Microsoft Word 97, 2000 und 2002.