Word-VBA, wie kommt man an Korrekturen von Autoren

Hallo Leute,

in Word-VBA kann ich ja ohne Probleme,
„WholeStory“, „Maintext“ usw. selektieren,
zählen usw.

Wie geht das denn mit den Korrekturen, die ein
anderer Autor im „Überarbeitungs“-Modus macht.
Dazu hab ich nichts gefunden, nirgends.

Ich habe z.B. einen Text, in dem ein
anderer Autor einen Teil entfernt und
neu schreibt. Jetzt bekomme ich den Text
zurück und mochte in VBA die Textblöcke
auseinandernehmen, je ein Block

  • mit exakt den Neueinfügungen des anderen Autors

  • mit meinen vorigen, aber jetzt „entfernten“ bzw.
    durchgestrichenen Zeichen

  • mit dem Rest des Textes

Scheint ja nicht ganz trivial zu sein. Vielleich
gibt es hier Office-Entwickler, die sowas schon
mal gesehen haben? Welche Objekteigenschaft gibt
mir Kontrolle über „Autor-Änderungen“
(aber nicht Versionen!).

Grüße & Danke

CMБ

Scheint ja nicht ganz trivial zu sein. Vielleich
gibt es hier Office-Entwickler, die sowas schon
mal gesehen haben? Welche Objekteigenschaft gibt
mir Kontrolle über „Autor-Änderungen“
(aber nicht Versionen!).

Schau mal unter der Revisions-Auflistung vom Dokument nach. Das sollte Dich weiterbringen…

Gruß, Manfred

Hallo Manfred,

Scheint ja nicht ganz trivial zu sein. Vielleich
gibt es hier Office-Entwickler, die sowas schon
mal gesehen haben? Welche Objekteigenschaft gibt
mir Kontrolle über „Autor-Änderungen“

Schau mal unter der Revisions-Auflistung vom Dokument nach.
Das sollte Dich weiterbringen…

Doohhh, das war es! Danke. Das steht in keinem
dieser einschlägigen VBA-Bücher ausgeführt. Hmmm.

Ich kann, dank Deines Tipps, sehr einfach über
folgende Befehle rankommen:

 Set myRange = Selection.Sections(1).Range
 revCnt = myRange.Revisions.Count
 For i = 1 To revCnt
 Debug.Print "Index:" & myRange.Revisions(i).Index
 Debug.Print "Author:" & myRange.Revisions(i).Author
 Debug.Print "Creator:" & myRange.Revisions(i).Creator
 Debug.Print "Date:" & myRange.Revisions(i).Date
 Debug.Print "Range:" & myRange.Revisions(i).Range
 Debug.Print "Type:" & myRange.Revisions(i).Type
 Next 

Danke & Gruß

CMБ

Hallo Manfred,

Schau mal unter der Revisions-Auflistung vom Dokument nach.
Das sollte Dich weiterbringen…

Dazu noch eine Frage, „Revisions“ hat ja einen
Counter, doch dieser stimmt nicht immer bzw.
die Revisions(i) kommen nicht subsequent hin-
tereinander.

Man trifft also hin und wieder auf ein „Revisions(i)“,
welches nicht existiert, obwohl "i Ende des Dokuments wurde erreicht
Möchten sie mit dem Suchvorgang am Anfang
des Dokuments fortfahren?-dann mit einer Fehlermeldung

 "Laufzeitfehler: das angeforderte Element ist
 nicht in der Sammlung enthalten"

letzterer lässt sich mit „On error resume next“
leicht kontrollieren.

Nun habe ich nicht herausbekommen, wie man prüfen kann,
ob ein Revision(i)-Objekt überhaupt existiert, ohne
dass Word seinen (obigen) Standarddialog aufwirft. Hmmmm.

Grüße

CMБ

Nun habe ich nicht herausbekommen, wie man prüfen kann,
ob ein Revision(i)-Objekt überhaupt existiert, ohne
dass Word seinen (obigen) Standarddialog aufwirft. Hmmmm.

Probier mal aus, ob es sowas wie DisplayAlerts gibt, und setzte das ggf. auf FALSE. So was gibt’s unter Excel; bei Word habe ich keine Ahnung. Bei Access gibt’s das DoCmd.SetWarnings.

Gruß, Manfred

1 „Gefällt mir“

Alternativ würde ich eher auf eine Schleife mit For-Each setzen, der sollte dann die Index-Nummer egal sein.

Dim meineÜberarbeitung as Revision
For Each meineÜberarbeitung In Selection.Range.Revisions
 meineÜberarbeitung.Accept
Next meineÜberarbeitung

Daniel

1 „Gefällt mir“

Hallo

Alternativ würde ich eher auf eine Schleife mit For-Each
setzen, der sollte dann die Index-Nummer egal sein.

Es funktioniert tatsächlich nur mit „foreach“,
ansonsten bringt Word immer einen „Suche Fortsetzen“
Dialog, wenn Revision(i) nicht existiert.

Danke & Grüße

CMБ