Add tones to pinyin

The below script will add tone marks (tones) to your pinyin for Microsoft Word Files.


Instructions: Copy the below code (highlight then hit ctrl-c) into your clipboard. Then in word hit alt-f8, type in a macro name e.g. ‘addtones’, hit create, paste in the file from the copied code. then exit. to use acro highlight the pinyin hit alt-f8 and select addtones. If there are questions let me know.


 
    With Selection.Find
        .Text = "r1"
        .Replacement.Text = "1r"
    End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
        .Text = "r2"
        .Replacement.Text = "2r"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
        .Text = "r3"
        .Replacement.Text = "3r"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
        .Text = "r4"
    .Replacement.Text = "4r"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
   .Text = "r5"
   .Replacement.Text = "5r"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "ng1"
.Replacement.Text = "1ng"
Selection.Find.Execute Replace:=wdReplaceAll
End With
   With Selection.Find
   .Text = "ng2"
.Replacement.Text = "2ng"
End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "ng3"
.Replacement.Text = "3ng"
End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "ng4"
.Replacement.Text = "4ng"
End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "ng5"
.Replacement.Text = "5ng"
End With
Selection.Find.Execute Replace:=wdReplaceAll
 
   With Selection.Find
   .Text = "n1"
   .Replacement.Text = "1n"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "n2"
   .Replacement.Text = "2n"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "n3"
   .Replacement.Text = "3n"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "n4"
   .Replacement.Text = "4n"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "n1"
   .Replacement.Text = "5n"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
 
   With Selection.Find
   .Text = "ai1"
   .Replacement.Text = "a1i"
Selection.Find.Execute Replace:=wdReplaceAll
   End With
   With Selection.Find
   .Text = "ai2"
   .Replacement.Text = "a2i"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "ai3"
   .Replacement.Text = "a3i"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "ai4"
   .Replacement.Text = "a4i"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "ai5"
   .Replacement.Text = "a5i"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
 
   With Selection.Find
   .Text = "ei1"
   .Replacement.Text = "e1i"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "ei2"
   .Replacement.Text = "e2i"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "ei3"
   .Replacement.Text = "e3i"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "ei4"
   .Replacement.Text = "e4i"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "ei5"
   .Replacement.Text = "e5i"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
 
   With Selection.Find
   .Text = "ao1"
   .Replacement.Text = "a1o"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "ao2"
   .Replacement.Text = "a2o"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "ao3"
   .Replacement.Text = "a3o"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "ao4"
   .Replacement.Text = "a4o"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "ao5"
   .Replacement.Text = "a5o"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
 
   With Selection.Find
   .Text = "ou1"
   .Replacement.Text = "o1u"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "ou2"
   .Replacement.Text = "o2u"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "ou3"
   .Replacement.Text = "o3u"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "ou4"
   .Replacement.Text = "o4u"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   With Selection.Find
   .Text = "ou5"
   .Replacement.Text = "o5u"
   End With
Selection.Find.Execute Replace:=wdReplaceAll
   
    With Selection.Find
        .Text = "uu1"
        .Replacement.Text = "v1"
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "uu2"
        .Replacement.Text = "v2"
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "uu3"
        .Replacement.Text = "v3"
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "uu4"
        .Replacement.Text = "v4"
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "uu"
        .Replacement.Text = ChrW(&HFC)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    
    With Selection.Find
        .Text = "o1"
        .Replacement.Text = ChrW(&H14D)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "o2"
        .Replacement.Text = ChrW(&HF3)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "o3"
        .Replacement.Text = ChrW(&H1D2)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "o4"
        .Replacement.Text = ChrW(&HF2)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "e1"
        .Replacement.Text = ChrW(&H113)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "e2"
        .Replacement.Text = ChrW(&HE9)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "e3"
        .Replacement.Text = ChrW(&H11B)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "e4"
        .Replacement.Text = ChrW(&HE8)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "i1"
        .Replacement.Text = ChrW(&H12B)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "i2"
        .Replacement.Text = ChrW(&HED)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "i3"
        .Replacement.Text = ChrW(&H1D0)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "i4"
        .Replacement.Text = ChrW(&HEC)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "u1"
        .Replacement.Text = ChrW(&H16B)
    End With
   Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "u2"
        .Replacement.Text = ChrW(&HFA)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "u3"
        .Replacement.Text = ChrW(&H1D4)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "u4"
        .Replacement.Text = ChrW(&HF9)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
       .Text = "v1"
        .Replacement.Text = ChrW(&H1D6)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "v2"
        .Replacement.Text = ChrW(&H1D8)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "v3"
        .Replacement.Text = ChrW(&H1DA)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "v4"
        .Replacement.Text = ChrW(&H1DC)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    
    With Selection.Find
        .Text = "a1"
        .Replacement.Text = ChrW(&H101)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "a2"
        .Replacement.Text = ChrW(&HE1)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "a3"
        .Replacement.Text = ChrW(&H1CE)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
    With Selection.Find
        .Text = "a4"
        .Replacement.Text = ChrW(&HE0)
    End With
    Selection.Find.Execute Replace:=wdReplaceAll