使用Word中的Visual Basic将方程式中的所有Cambria Math斜体字体更改为非斜体

时间:2018-10-22 14:57:15

标签: vba ms-word word-vba

常规查找和替换不执行任何操作。因此,我正在处理Visual Basic中的此程序,以便在MSWord中运行。

Word中的公式使用字体Cambria Math, italic

我想将所有方程式更改为Cambria Math, non-italic (regular)

我在网上找到了这个程序,并做了一些修改。

Sub Macro1()
'
' Macro1 Macro
' Macro recorded 17/05/2004 by Tony
'
    Selection.Find.Font.Italic = True
    Selection.Find.Font.Name = "Cambria Math"
    With Selection.Find
        .Text = ""
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
End Sub

这会找到文本,但不会更改任何内容,而是逐个进行,而不是整个文档。

我也尝试了这个其他脚本,但是没有运气。

Sub ReplaceItalic()
    With ActiveDocument.Content.Find
        .Font.Name = "Cambria Math"
        .Font.Italic = True

        With .Replacement
            .Font.Italic = False
        End With

        .Execute FindText:="", ReplaceWith:="", _
                 Format:=True, Replace:=wdReplaceAll
    End With
End Sub

1 个答案:

答案 0 :(得分:1)

我认为我明白了。您遇到的问题是方程式不是普通文本,而是OMath object的一部分。因此,值得庆幸的是,我们要做的就是遍历所有OMath对象并适当地设置它们的Range.Font

Sub EquationItalics()

    Dim equation As OMath
    For Each equation In ActiveDocument.OMaths
        equation.Range.Font.Italic = False
    Next equation

End Sub