Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

problème de macro pour écrire en chinois

3 réponses
Avatar
david.taieb
Bonjour,

j'avais trouvé une macro qui permettait d'écrire en pinyin (version
phonétique du chinois) elle marchait sous word 97 et 2000 mais ne fonctionne
pas sous word 2003...
qqun saurait il pourquoi elle ne marche plus ???

merci d'avance


voici cette macro :


Sub Add_Tones()

' Add_Tones
'
' Created June 12, 1998 by Erik Peterson
' Based on Slippery Sinifier
' Created May 20, 1997 by Bruce Rusk
'
' Uses Chinese Pinyin Fonts developed by C.C. Cheng
' for use with Chinese Online Reading Assistant Project
' available at http://www.lang.uiuc.edu/chinese/reading/tools/

' Freely distributable and usable with any
' modification whatever.
'

Dim strSearchText(110) As String
Dim strPYTone(110) As String
Dim count As Integer

' These arrays hold the codes to be searched for

Dim strPYFont As String
' Name of the Chinese font. Modify if desired; may be
' linked to a user form &c.
strPYFont = "Chinese Pinyin"


Application.ScreenUpdating = False
' The screen would get too messy if we let it redraw. It
' would also slow down operation.

' Most characters fall in this range
' (Big-5 leading bytes are Hex A1-FE)
strSearchText(1) = "ang1": strPYTone(1) = "`ng"
strSearchText(2) = "ang2": strPYTone(2) = "1ng"
strSearchText(3) = "ang3": strPYTone(3) = "2ng"
strSearchText(4) = "ang4": strPYTone(4) = "3ng"

strSearchText(5) = "eng1": strPYTone(5) = "4ng"
strSearchText(6) = "eng2": strPYTone(6) = "5ng"
strSearchText(7) = "eng3": strPYTone(7) = "6ng"
strSearchText(8) = "eng4": strPYTone(8) = "7ng"

strSearchText(9) = "ing1": strPYTone(9) = "%ng"
strSearchText(10) = "ing2": strPYTone(10) = "^^ng" ' should be caret
strSearchText(11) = "ing3": strPYTone(11) = "&ng"
strSearchText(12) = "ing4": strPYTone(12) = "*ng"

strSearchText(13) = "ong1": strPYTone(13) = "8ng"
strSearchText(14) = "ong2": strPYTone(14) = "9ng"
strSearchText(15) = "ong3": strPYTone(15) = "0ng"
strSearchText(16) = "ong4": strPYTone(16) = "-ng"

strSearchText(17) = "Ang1": strPYTone(17) = "~ng"
strSearchText(18) = "Ang2": strPYTone(18) = "!ng"
strSearchText(19) = "Ang3": strPYTone(19) = "@ng"
strSearchText(20) = "Ang4": strPYTone(20) = "#ng"

strSearchText(21) = "Eng1": strPYTone(21) = "$ng"

strSearchText(22) = "an1": strPYTone(22) = "`n"
strSearchText(23) = "an2": strPYTone(23) = "1n"
strSearchText(24) = "an3": strPYTone(24) = "2n"
strSearchText(25) = "an4": strPYTone(25) = "3n"

strSearchText(26) = "en1": strPYTone(26) = "4n"
strSearchText(27) = "en2": strPYTone(27) = "5n"
strSearchText(28) = "en3": strPYTone(28) = "6n"
strSearchText(29) = "en4": strPYTone(29) = "7n"

strSearchText(30) = "in1": strPYTone(30) = "%n"
strSearchText(31) = "in2": strPYTone(31) = "^^n" ' should be caret
strSearchText(32) = "in3": strPYTone(32) = "&n"
strSearchText(33) = "in4": strPYTone(33) = "*n"

strSearchText(34) = "un1": strPYTone(34) = "[n"
strSearchText(35) = "un2": strPYTone(35) = "{n"
strSearchText(36) = "un3": strPYTone(36) = "}n"
strSearchText(37) = "un4": strPYTone(37) = "]n"

strSearchText(38) = "An1": strPYTone(38) = "~n"
strSearchText(39) = "An2": strPYTone(39) = "!n"
strSearchText(40) = "An3": strPYTone(40) = "@n"
strSearchText(41) = "An4": strPYTone(41) = "#n"

strSearchText(42) = "En1": strPYTone(42) = "$n"

strSearchText(43) = "ai1": strPYTone(43) = "`i"
strSearchText(44) = "ai2": strPYTone(44) = "1i"
strSearchText(45) = "ai3": strPYTone(45) = "2i"
strSearchText(46) = "ai4": strPYTone(46) = "3i"

strSearchText(47) = "ei1": strPYTone(47) = "4i"
strSearchText(48) = "ei2": strPYTone(48) = "5i"
strSearchText(49) = "ei3": strPYTone(49) = "6i"
strSearchText(50) = "ei4": strPYTone(50) = "7i"

strSearchText(51) = "ao1": strPYTone(51) = "`o"
strSearchText(52) = "ao2": strPYTone(52) = "1o"
strSearchText(53) = "ao3": strPYTone(53) = "2o"
strSearchText(54) = "ao4": strPYTone(54) = "3o"

strSearchText(55) = "ou1": strPYTone(55) = "8u"
strSearchText(56) = "ou2": strPYTone(56) = "9u"
strSearchText(57) = "ou3": strPYTone(57) = "0u"
strSearchText(58) = "ou4": strPYTone(58) = "-u"

strSearchText(59) = "er1": strPYTone(59) = "4r"
strSearchText(60) = "er2": strPYTone(60) = "5r"
strSearchText(61) = "er3": strPYTone(61) = "6r"
strSearchText(62) = "er4": strPYTone(62) = "7r"

strSearchText(63) = "a1": strPYTone(63) = "`"
strSearchText(64) = "a2": strPYTone(64) = "1"
strSearchText(65) = "a3": strPYTone(65) = "2"
strSearchText(66) = "a4": strPYTone(66) = "3"
strSearchText(67) = "e1": strPYTone(67) = "4"
strSearchText(68) = "e2": strPYTone(68) = "5"
strSearchText(69) = "e3": strPYTone(69) = "6"
strSearchText(70) = "e4": strPYTone(70) = "7"
strSearchText(71) = "o1": strPYTone(71) = "8"
strSearchText(72) = "o2": strPYTone(72) = "9"
strSearchText(73) = "o3": strPYTone(73) = "0"
strSearchText(74) = "o4": strPYTone(74) = "-"
strSearchText(75) = "u:1": strPYTone(75) = "="
strSearchText(76) = "u:4": strPYTone(76) = "\" ' should be backslash
strSearchText(77) = "u1": strPYTone(77) = "["
strSearchText(78) = "u4": strPYTone(78) = "]"
strSearchText(79) = "A1": strPYTone(79) = "~"
strSearchText(80) = "A2": strPYTone(80) = "!"
strSearchText(81) = "A3": strPYTone(81) = "@"
strSearchText(82) = "A4": strPYTone(82) = "#"
strSearchText(83) = "E1": strPYTone(83) = "$"
strSearchText(84) = "i1": strPYTone(84) = "%"
strSearchText(85) = "i2": strPYTone(85) = "^^" ' should be caret
strSearchText(86) = "i3": strPYTone(86) = "&"
strSearchText(87) = "i4": strPYTone(87) = "*"
strSearchText(88) = "u:2": strPYTone(88) = "+"
strSearchText(89) = "u:3": strPYTone(89) = "|"
strSearchText(90) = "u:": strPYTone(90) = "_"
strSearchText(91) = "u2": strPYTone(91) = "{"
strSearchText(92) = "u3": strPYTone(92) = "}"
strSearchText(93) = "a5": strPYTone(93) = "a"
strSearchText(94) = "e5": strPYTone(94) = "e"
strSearchText(95) = "i5": strPYTone(95) = "i"
strSearchText(96) = "o5": strPYTone(96) = "o"
strSearchText(97) = "u5": strPYTone(97) = "u"
strSearchText(98) = "n5": strPYTone(98) = "n"
strSearchText(99) = "ng5": strPYTone(99) = "ng"

For count = 1 To 99

With Selection.Find
' Search only in the selected text; could be
' modified to search entire document.

.ClearFormatting
.MatchWildcards = False
.MatchCase = True
.Font.Name = "Times New Roman"
.Text = strSearchText(count)
' Search for the concatenated search text.

With .Replacement
.ClearFormatting
.LanguageID = wdNoProofing
.Font.Name = strPYFont
.Text = strPYTone(count)
End With
.Execute replace:=wdReplaceAll
' Replace throughout the selected area
End With

Next

' be polite and clear the search dialog

With Selection.Find
.ClearFormatting
.MatchWildcards = False
.Text = ""
With .Replacement
.ClearFormatting
.Text = ""
End With
End With

Application.ScreenUpdating = True
' Turn display back on

End Sub

3 réponses

Avatar
Jean-Guy Marcil
david.taieb was telling us:
david.taieb nous racontait que :

Bonjour,

j'avais trouvé une macro qui permettait d'écrire en pinyin (version
phonétique du chinois) elle marchait sous word 97 et 2000 mais ne
fonctionne pas sous word 2003...
qqun saurait il pourquoi elle ne marche plus ???



Avez-vous vérifier le nuveau de sécurité dans Outils > Macros... > Sécurité.
Il devrait être à medium.

Sinon, ça veut dire quoi "elle ne marche plus"
Qu'est-ce qui ce passait avant? Et maintenant?

--
Salut!
_______________________________________
Jean-Guy Marcil - Word MVP

Word MVP site: http://www.word.mvps.org

Avatar
david.taieb
Bonjour,

j'ai vérifié et le niveau de sécurité est bien medium..

la macro fonctionnait ainsi :

on tapai shi4 en time new roman.
on lançait la macro addtone et ca écrivait shi en pinyin au 4ème ton..
Avatar
Jean-Guy Marcil
david.taieb was telling us:
david.taieb nous racontait que :

Bonjour,

j'ai vérifié et le niveau de sécurité est bien medium..


Donc tu acceptes d'activer les macros quand tu ouvres le document.

la macro fonctionnait ainsi :

on tapai shi4 en time new roman.
on lançait la macro addtone et ca écrivait shi en pinyin au 4ème ton..


Tu nous as toujours pas dit quel est le problème.
Que ce passe-t-il maintenant une fois que tu lances la macro? Comment
lances-tu la macro?

Juste au cas, est-ce que tu t'asssurs bien que le texte de départ est bien
en "Times New Roman" et que la police "Chinese Pinyin" est bien disponible
sur l'ordinateur?

--
Salut!
_______________________________________
Jean-Guy Marcil - Word MVP

Word MVP site: http://www.word.mvps.org