Изменение всего курсивного шрифта Cambria Math в уравнении на не курсив с использованием Visual Basic в Word - PullRequest
0 голосов
/ 22 октября 2018

Обычный поиск и замена ничего не делает.Так что я имею дело с этой программой в 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 голосов
/ 22 октября 2018

Я думаю, что понял.Проблема, с которой вы столкнулись, состоит в том, что уравнения - это не обычный текст, а часть OMath объекта .К счастью, все, что нам нужно было сделать, это перебрать все OMath объекты и установить их Range.Font соответствующим образом!

Sub EquationItalics()

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

End Sub
...