Hallo,
ich habe folgendes Problem:
Eigentlich arbeite ich mit Word von MS. Dort habe ich einige VBA-Makros erstellt, welche ich für meine Arbeit benötige.
Eins von diesen Makros markiert automatisch alle Zahlen in Grün. (Makro startet -> im gesamten Dokument werden alle Zahlen Grün hinterlegt -> Meldung "Fertig" erscheint -> mit wegklicken der Meldung wird das Makro geschlossen).
Wenn ich die .docm Datei mit Writer öffne, wird dieses VBA-Makro logischerweise nicht erkannt.
Wie kann ich ein gleichwertiges Makro für Writer erstellen? (Ich habe leider lediglich Grundkenntnisse in der Programmierung mit VB und VBA.)
Bei Writer heißt die Funktion "Zeichenhintergrund" und die Farbe ist "Grün 2". Aber wie kann ich das automatisieren, dass alle Zahlen im Text den Zeichenhintergrnd "Grün 2" haben?
Vielen Dank schonmal im Voraus!
max1605
BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das OpenOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des OpenOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als OO-SUPPORTER gekennzeichnet. 🤗
Automatischer Zeichenhintergrund
Re: Automatischer Zeichenhintergrund
Hallo,
grundsätzlich lässt sich die Aufgabe auch ohne Makro lösen.
1) Du erstellst eine Zeichenvorlage mit den gewünschten Eigenschaften (hier: Zeichenhintergrund Grün2)
2) In deinem Text nimmst du Suchen&Ersetzen:
Suchen nach: [:digit:]
Weitere Optionen: Reguläre Ausdrücke
-> Alle suchen
3) Zuweisen der Formatvorlage (Doppelklick auf die Vorlage)
Das ganze lässt sich auch per Makro automatisieren. Auf die Schnelle per Makroaufzeichung:
grundsätzlich lässt sich die Aufgabe auch ohne Makro lösen.
1) Du erstellst eine Zeichenvorlage mit den gewünschten Eigenschaften (hier: Zeichenhintergrund Grün2)
2) In deinem Text nimmst du Suchen&Ersetzen:
Suchen nach: [:digit:]
Weitere Optionen: Reguläre Ausdrücke
-> Alle suchen
3) Zuweisen der Formatvorlage (Doppelklick auf die Vorlage)
Das ganze lässt sich auch per Makro automatisieren. Auf die Schnelle per Makroaufzeichung:
Code: Alles auswählen
sub Zahlen_faerben
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(21) as new com.sun.star.beans.PropertyValue
args1(0).Name = "SearchItem.StyleFamily"
args1(0).Value = 2
args1(1).Name = "SearchItem.CellType"
args1(1).Value = 0
args1(2).Name = "SearchItem.RowDirection"
args1(2).Value = true
args1(3).Name = "SearchItem.AllTables"
args1(3).Value = false
args1(4).Name = "SearchItem.SearchFiltered"
args1(4).Value = false
args1(5).Name = "SearchItem.Backward"
args1(5).Value = false
args1(6).Name = "SearchItem.Pattern"
args1(6).Value = false
args1(7).Name = "SearchItem.Content"
args1(7).Value = false
args1(8).Name = "SearchItem.AsianOptions"
args1(8).Value = false
args1(9).Name = "SearchItem.AlgorithmType"
args1(9).Value = 1
args1(10).Name = "SearchItem.SearchFlags"
args1(10).Value = 65536
args1(11).Name = "SearchItem.SearchString"
args1(11).Value = "[:digit:]"
args1(12).Name = "SearchItem.ReplaceString"
args1(12).Value = ""
args1(13).Name = "SearchItem.Locale"
args1(13).Value = 255
args1(14).Name = "SearchItem.ChangedChars"
args1(14).Value = 2
args1(15).Name = "SearchItem.DeletedChars"
args1(15).Value = 2
args1(16).Name = "SearchItem.InsertedChars"
args1(16).Value = 2
args1(17).Name = "SearchItem.TransliterateFlags"
args1(17).Value = 1280
args1(18).Name = "SearchItem.Command"
args1(18).Value = 1
args1(19).Name = "SearchItem.SearchFormatted"
args1(19).Value = false
args1(20).Name = "SearchItem.AlgorithmType2"
args1(20).Value = 2
args1(21).Name = "Quiet"
args1(21).Value = true
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Template"
args2(0).Value = "zahlen grün"
args2(1).Name = "Family"
args2(1).Value = 1
dispatcher.executeDispatch(document, ".uno:StyleApply", "", 0, args2())
end sub
Gruß,
mikele
mikele
Re: Automatischer Zeichenhintergrund
Vielen Dank für deine Antwort.
Als ich deinen Code in ein OpenOffice Basic Makro einfügt und ausführt habe, dann wurden alle Zahlen im Text markiert/ausgewählt.
Habe noch folgendes beigefügt, damit die ausgewählten Zahlen in "Grün 2" eingefärbt werden und dann die Auswahl aufgehoben wird.
Wie kann ich es machen, dass an Ende des ganzen noch eine Meldung angezeigt wird mit "Fertig" und einem "OK" Button um diese Meldung zu schließen?
Beste Grüße!
Als ich deinen Code in ein OpenOffice Basic Makro einfügt und ausführt habe, dann wurden alle Zahlen im Text markiert/ausgewählt.
Habe noch folgendes beigefügt, damit die ausgewählten Zahlen in "Grün 2" eingefärbt werden und dann die Auswahl aufgehoben wird.
Code: Alles auswählen
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "BackColor"
args3(0).Value = 6750054
dispatcher.executeDispatch(document, ".uno:BackColor", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(1) as new com.sun.star.beans.PropertyValue
args4(0).Name = "SearchItem.StyleFamily"
args4(0).Value = 2
args4(1).Name = "Quiet"
args4(1).Value = true
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args4())
Wie kann ich es machen, dass an Ende des ganzen noch eine Meldung angezeigt wird mit "Fertig" und einem "OK" Button um diese Meldung zu schließen?
Beste Grüße!
Re: Automatischer Zeichenhintergrund
Hallo,
Voraussetzung für die Färbung war, dass eine entsprechende Zeichenvorlage erstellt ist ...Als ich deinen Code in ein OpenOffice Basic Makro einfügt und ausführt habe, dann wurden alle Zahlen im Text markiert/ausgewählt.
Code: Alles auswählen
msgbox "Fertig"
Gruß,
mikele
mikele