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Б