Hallo Helmut,

Helmut Schütz schrieb am 09-Jan-19 um 10:56:
Hallo Regina,

du hast mich auf die Idee gebracht, mein Problem einfach zu lösen. Nämlich das gewünschte Zeichen nicht per "Makro aufzeichnen" eingeben zu wollen, sondern es einfach in ein fertiges Makro unter "Makro verwalten" einzutragen.

Mein Makro für das Zeichen ē sieht dann zum Beispiel so aus:

sub eoberstrichklein
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(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Text"
args1(0).Value = "ē"
dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args1())
end sub

Die einzige Frage, die bleibt: Ist das die einzige Art, ein solches Makro zu schreiben, oder ginge es evtl. auch einfacher?


Es geht auch ohne Dispatcher:

Sub CmitCedillaKlein

REM Aktuelle Cursorposition bestimmen
Dim doc as variant
Dim controller as variant
Dim textviewcursor as variant
doc = ThisComponent
controller = doc.getCurrentController()
textviewcursor = controller.getViewCursor()
REM Unicode-Wert für das Zeichen ç ist e7, siehe Sonderzeichendialog
REM clng wandelt den Wert in eine Ganzzahl vom Typ long um
REM chr wandelt es dann in ein Zeichen mit Unicode-Codierung um
Dim character as String
character = chr(clng("&He7"))
REM Dieses Zeichen wird an der aktuellen Cursorposition eingefügt
textviewcursor.setString(character)
REM Der Cursor wird ohne gleichzeitiges Markieren um 1 Stelle nach rechts gesetzt.
textviewcursor.goRight(1, false)
End Sub

[Eventuell musst du Zeilenumbrüche entfernen.]

Wenn du die REM Zeilen rauslässt, ist es recht kurz.

Ich habe allerdings dann eine Symbolleiste für die ganzen Sonderzeichen gemacht. Da habe ich als Text für das Icon eben dieses Sonderzeichen genommen. Das war für Schüler mit Französisch; es war für sie einfacher als Tastenkürzel zu lernen. Die Makros und die Symbolleiste habe ich in eine Dokumentenvorlage gepackt, bei der dann auch gleich die Sprache auf Französisch gestellt war.

Hier noch ein paar Alternativen ohne Makro:

Lerne die Codepoints auswendig und gebe sie mit dem Numpad ein.

Nimm die Sonderzeichen in der Ersetzungstabelle auf. Dann musst du u.U. das Leerzeichen entfernen, das man benötigt um die Ersetzung auszulösen.

Mache aus dem Sonderzeichen einen AutoText. Dann musst du den Zeilenumbruch entfernen, der nach einem AutoText automatisch eingefügt wird.

Mit freundlichen Grüßen
Regina


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Antwort per Email an