Word文档Unicode 上下标转换Times New Roman方法
通过菜单打开 VBA
如果你想找 Alt + F11 对应的菜单入口,可以这样:
先打开“开发工具”
点击:
文件 → 选项 → 自定义功能区右边勾选:
开发工具然后确定。
回到 Word 顶部菜单,会多出一个:
开发工具点击里面的:
Visual Basic第二步:粘贴宏代码
把下面这段复制进去:
Sub ConvertUnicodeSubAndSupToWordFormat()
Dim subChars As Variant
Dim subTexts As Variant
Dim supChars As Variant
Dim supTexts As Variant
Dim i As Integer
‘ Unicode 下标数字
subChars = Array(ChrW(&H2080), ChrW(&H2081), ChrW(&H2082), ChrW(&H2083), ChrW(&H2084), _
ChrW(&H2085), ChrW(&H2086), ChrW(&H2087), ChrW(&H2088), ChrW(&H2089))
subTexts = Array(“0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”)
‘ Unicode 上标数字和正负号
supChars = Array(ChrW(&H2070), ChrW(&HB9), ChrW(&HB2), ChrW(&HB3), ChrW(&H2074), _
ChrW(&H2075), ChrW(&H2076), ChrW(&H2077), ChrW(&H2078), ChrW(&H2079), _
ChrW(&H207A), ChrW(&H207B))
supTexts = Array(“0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “+”, “-“)
‘ 转换 Unicode 下标
For i = 0 To UBound(subChars)
With ActiveDocument.Content.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = subChars(i)
.Replacement.Text = subTexts(i)
.Replacement.Font.Name = “Times New Roman”
.Replacement.Font.Subscript = True
.Replacement.Font.Superscript = False
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.Execute Replace:=wdReplaceAll
End With
Next i
‘ 转换 Unicode 上标
For i = 0 To UBound(supChars)
With ActiveDocument.Content.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = supChars(i)
.Replacement.Text = supTexts(i)
.Replacement.Font.Name = “Times New Roman”
.Replacement.Font.Superscript = True
.Replacement.Font.Subscript = False
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.Execute Replace:=wdReplaceAll
End With
Next i
MsgBox “Unicode 下标和上标已转换为 Word 正规格式。”
End Sub
第三步:运行 运行 → 运行子过程/用户窗体也可以点工具栏上的绿色三角形运行按钮。
成果展示
夜雨聆风




