Denn wenn ich das Makro ausführe, wird die ganze umgewandelte Zahl Tiegfestellt.
und nicht nur das - schon als Du das Makro aufgezeichnet hast, also die ganze Vorgehensweise per Hand einmal durchgespielt hast, kann es nicht funktioniert haben, so das ich mich einzig frage warum Du erwartest das ein Makro zu dessen Aufzeichnung Du falsch vorgegangen bist (was für Dich jederzeit amn falschen Resultat sichtbar war) nun quasi von sich aus richtig, jedoch eben dann völlig anders als Du es aufgezeichnet hast funktionieren soll.
Die einfachste, und für jeden nachvollziehbare, Variante wäre: zeichne einfach das Makro richtig auf, d.h. das nach Aufzeichnung das Ergebnis in der Datei aussieht wie es aussehen soll, was bedeutet:
*einmal Pfeil rechts
*einmal Pfeil links
*einmal DEL
*zweimal Pfeil links
*schreibe 0x
vorausgesetzt das FF (wie durch Dich gewünscht) markiert ist UND ZWAR SO das der Cursor am rechten Ende der Markierung steht.
Das ergibt:
Code: Alles auswählen
sub ChangeHex2
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(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Count"
args1(0).Value = 1
args1(1).Name = "Select"
args1(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoRight", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Count"
args2(0).Value = 1
args2(1).Name = "Select"
args2(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args2())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Delete", "", 0, Array())
rem ----------------------------------------------------------------------
dim args4(1) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Count"
args4(0).Value = 1
args4(1).Name = "Select"
args4(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args4())
rem ----------------------------------------------------------------------
dim args5(1) as new com.sun.star.beans.PropertyValue
args5(0).Name = "Count"
args5(0).Value = 1
args5(1).Name = "Select"
args5(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoLeft", "", 0, args5())
rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "Text"
args6(0).Value = "0x"
dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args6())
end sub
ist hingegen die Markierung des FF so das sich der Cursor links befindet mußt Du so aufzeichnen:
*einmal Pfeil rechts
*einmal Pfeil links
*schreibe 0x
*zweimal Pfeil rechts
*einmal DEL
alles keinerlei Geheimwissenschaft, keinerlei Programmierkenntnisse nötig sondern nur das Aufzeichnen was ohnehin bei normaler händischer Bearbeitung zum richtigen Ergebnis führt.
Gruß
Stephan