Nächste Änderung in Writer suchen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

MichaAlzt
Beiträge: 1
Registriert: Mi, 15.04.2015 09:42

Nächste Änderung in Writer suchen

Beitrag von MichaAlzt »

Hallo,

ich habe ein Makro geschrieben, mit dem ich in einem langen Text schnell zur nächsten Änderung springen kann. Da ich nicht wirklich programmieren kann (nur ein bisschen VBA-Erfahrung), habe ich das Makro über den Makro-Recorder erstellt. Ich öffne während der Makro-Aufzeichnung einfach das Menü Bearbeiten/Änderungen/Akzeptieren_oder_verwerfen. Dann springt der Cursor wie gewünscht zur nächsten Änderung. Makro abspeichern. Fertig. So sieht der Code des fertigen Makros aus:

Code: Alles auswählen

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:AcceptTrackedChanges", "", 0, Array())

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ShowTrackedChanges"
args2(0).Value = true

dispatcher.executeDispatch(document, ".uno:ShowTrackedChanges", "", 0, args2())

Es gibt nur ein Probem: Leider bleibt das Fenster "Änderungen akzeptiern oder verwerfen" nach Ausführung des Makros geöffnet. Wie kann ich es schließen?

P.S. Die einfachste Idee wäre natürlich, das Fenster während der Makroaufzeichnung zu schließen - dann funzt aber leider das ganze Makro nicht - warum auch immer. Habe alles in diese Richtung ausprobiert - aber ohne Erfolg.

Weiß jemand Rat?

Beste Grüße

Micha
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Nächste Änderung in Writer suchen

Beitrag von Stephan »

Weiß jemand Rat?
Ich bin zwar nicht allwissend (vielleicht weiß deshalb jemand anderes eine Lösung) aber ich kenne keinen Weg das Fenster unter diesen Umständen per Makro zu schließen.

(Wahrscheinlich müsste man deshalb die gesamte Programmierung anders machen um die Nutzung dieses Fensters zu umgehen, dass geht dann aber nicht per Makrorekorder aufzuzeichnen und ist auch nicht sooo einfach das ich eine Lösung bereits wüsste.)


Gruß
Stephan
mikeleb
*******
Beiträge: 1427
Registriert: Fr, 09.12.2011 16:50

Re: Nächste Änderung in Writer suchen

Beitrag von mikeleb »

Hallo,

das folgende Makro springt bei jedem Aufruf zur nächsten Änderung

Code: Alles auswählen

global nIndex as integer

Sub Main

	odoc=thiscomponent
	if isempty(nIndex) or nIndex=odoc.redlines.getcount() then nIndex=0
	omark=odoc.redlines.getbyindex(nIndex)
	oview=oDoc.GetCurrentController.ViewCursor
	oview.gotoRange(omark.redlineend,false)
	oview.gotoRange(omark.redlinestart,true)
	nIndex=nIndex+1

End Sub
edit : besser wäre vielleicht

Code: Alles auswählen

global nIndex as integer

Sub Main

	odoc=thiscomponent
	if isempty(nIndex) or nIndex>=odoc.redlines.getcount() then nIndex=0
	omark=odoc.redlines.getbyindex(nIndex)
	oview=oDoc.GetCurrentController.ViewCursor
	oview.gotoRange(omark.redlineend,false)
	oview.gotoRange(omark.redlinestart,true)
	nIndex=nIndex+1

End Sub
falls zwischendurch Änderungen am Text vorgenommen werden.
Gruß,
mikeleb
Antworten