Rem StarBasic macro pour/for StarOffice: ' A (execute macro) --> Á Rem Compose toute lettre accentuée Rem La macro doit être affectée à une touche (F6, ctrl-n, ...) Rem Compose any accented letter Rem The macro should be assigned to a key (F6, ctrl-n, ...) Rem Logiciel libre. Rem This macro is free software, you can use it as you like. Rem J.-P. Gallou gallou@cict.fr, 11 mar 2000 Rem mis a jour/updated 22 mar 2002 Rem Rem Some keys added to match Linux X11 iso8859-1/Compose Rem Andrew Daviel advax@triumf.ca Jan 2003 Dim l, ls, c As String Sub Main Dim s, lc As String Selection.GoLeft( 2, TRUE ) s=Selection.Value l=right (s, 1) ls="aceinosuyzACEINOSUYZ0" c="" Select Case left (s, 1) Case "," MetAccent(" ç Ç ") Case "'", "?", "?" MetAccent("á éí ó úý Á ÉÍ Ó ÚÝ ") Case "`" MetAccent("à èì ò ù À ÈÌ Ò Ù ") Case "^" MetAccent("âçêî ôsû ?ÂÇÊÎ ÔSÛ ?°") Case """", ":" MetAccent("ä ëï ö üÿ Ä ËÏ Ö ÜY ") Case "~" MetAccent("ã ñõ Ã ÑÕ ") Case else Select Case s Case "eu" c = "?" Case "mi", "mu", "/u", "u/" c = "µ" Case "ae" c = "æ" Case "AE" c = "Æ" Case "oe" c = "?" Case "OE" c = "?" Case "sz", "ss" c = "ß" Case ".a", "°a", "*a", "a*" c = "å" Case ".A", "°A", "*A", "A*" c = "Å" Case "/o" c = "ø" Case "/O" c = "Ø" Case "pm", "pt" c = "?" Case "tm" c = "?" Case "po", "-l", "-L", "l-", "L-" c = "£" Case "sp" c = " " Case "!!" c = "¡" Case "??" c = "¿" Case "mo", "^0", "0^" c = "¤" Case "ye", "Y-", "-Y", "-y", "y-" c = "¥" Case "se", "ss" c = "§" Case "pa", "!p", "p!" c = "¶" Case "co", "oc" c = "©" Case "re", "ro", "or" c = "®" Case "ma", "-^", "^-" c = "¯" Case "no", ",-", "-," c = "¬" Case "+-", "-+" c = "±" Case "xx" c = "×" Case "-n" c = "-" Case "-m" c = "-" Case ":-", ":-" c = "÷" Case ".." c = "?" Case "of" c = "ª" Case "om" c = "º" Case "e1", "s1", "^1", "1^" c = "¹" Case "e2", "s2", "^2", "2^" c = "²" Case "e3", "s3", "^3", "3^" c = "³" Case "14" c = "¼" Case "12" c = "½" Case "34" c = "¾" Case "ce", "|c", "c|" c = "¢" Case "et" c = "ð" Case "ET", "-D", "D-" c = "Ð" Case "th" c = "þ" Case "TH" c = "Þ" End Select End Select if c = "" or c = " " then Selection.GoRight 2 Else Selection.Backspace() Selection.Insert(c) End If end sub Function MetAccent(la as String) Dim i As Integer For i = 1 To 20 if mid (ls, i, 1) = l then c = mid (la, i, 1) exit for end if Next i end Function