Writer

Cette macro sert à corriger les interversions de deux lettres, fréquentes quand on frappe un texte.

La macro transpose, un classique de OpenOffice, est une première solution. Mais l'auteur ne maîtrisait pas bien l’API. Cette nouvelle version est aussi efficace et plus simple. Et en français.

02/02/2004 : La version 2 de cette macro fonctionne maintenant dans d’autres zones que le texte principal : une cellule de tableau Writer, l’en-tête, le pied de page, la note de bas de page, etc.

Utilisation :

Copier/coller la macro dans un module de la bibliothèque soffice / standard. Définir un raccourci clavier ou une icône dans une barre d’outils qui lance la macro dans un contexte Writer.

Ensuite, cliquer entre les deux lettres à permuter et actionner la touche de raccourci ou l’icône.

REM ***** BASIC *****

Option Explicit

Sub Inverser2car

Dim MonDocument As Object, MonTexte As Object

Dim CurseurVisible As Object, MonCurseur As Object

Dim tx0 As String, tx1 As String, tx2 As String

MonDocument = ThisComponent

rem on suppose le curseur visible positionné entre les deux caractères

CurseurVisible = MonDocument.currentcontroller.getViewCursor()

' récupérer l'objet texte dans lequel se trouve le curseur

MonTexte = CurseurVisible.Text

rem créer un curseur d'écriture à la position du curseur visible

MonCurseur = MonTexte.createTextCursorByRange(CurseurVisible.getstart())

MonCurseur.goRight(1, false) ' position après le 2eme caractère

MonCurseur.goLeft(2, true) ' sélectionner les 2 caractères précédents

tx0 = MonCurseur.String

tx1 = Left(tx0, 1)

tx2 = Right(tx0, 1)

tx0 = tx2 & tx1 ' inversion des 2 caractères

MonCurseur.String = tx0

End Sub

Sophie Gautier

2002-11-21T17:36:37

Bernard M.