首页 > 解决方案 > 在 Word 中使用 Visual Basic 将方程式中的所有 Cambria Math 斜体字体更改为非斜体

问题描述

常规查找和替换什么都不做。所以我在 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

标签: vbams-word

解决方案


我想我明白了。您遇到的问题是方程式不是普通文本,而是OMathobject的一部分。谢天谢地,我们所要做的就是遍历所有OMath对象并Range.Font适当地设置它们!

Sub EquationItalics()

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

End Sub

推荐阅读