如何在 MS Word 中使用 VBA 选择文档中的所有数学方程?

安德鲁·袁

我对 MS Word 中的 VBA 编辑器很陌生,我想知道是否有办法使用 VBA 选择 Word 文档中的所有数学方程?例如,下面的代码

Sub Change_Equation_Color()
Dim Eq As OMath
For Each Eq In ActiveDocument.OMaths
Eq.Range.Select
Selection.Font.ColorIndex = wdDarkBlue '
Next
End Sub

按顺序选择每个数学方程并将每个方程的颜色更改为“wdDarkBlue”。即使这很好,有没有办法先选择所有方程,然后更改选择的颜色/字体/等?主要原因是如果我的文档有很多方程,那么提供的代码有点慢,因为它必须按顺序遍历每个方程。

编辑@Timothy Rylatt 提供了一种非常快速且通用的方法,但出于我的目的,我发现以下代码实际上要快得多。

Sub Eq2LM()
    With ActiveDocument.Content.Find
        .ClearFormatting
        .Format = False
        .Font.Name = "Cambria Math"
        .Text = ""
       
        With .Replacement
            .ClearFormatting
            .Font.Name = "Latin Modern Math"
            .Text = ""
        End With
        .Execute Forward:=True, Replace:=wdReplaceAll
    End With
End Sub

“警告”是您的方程必须全部使用“Cambria math”字体,这通常是默认设置。

蒂莫西·赖拉特

无法使用 VBA 创建非连续选择。

使用Selection对象不是一个好习惯,尽管偶尔有必要。通常有更好的替代方案,它们更有效且更不容易出错。例如:

Sub Change_Equation_Color()
    Dim Eq As OMath
    Application.ScreenUpdating = False
    For Each Eq In ActiveDocument.OMaths
        Eq.Range.Font.ColorIndex = wdDarkBlue
    Next
    Application.ScreenUpdating = True
End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在MS Word VBA中处理多字节符号

如何在VBA MS Word中实现iferror函数

如何在Word VBA中使用VLookup?

使用VBA在文件夹中的所有文档中查找和替换MS Word文本

如何在 Ms word 文档中使用不同的颜色主题?

如何在带有 MS Word 的 AppleScript 中使用“另存为”命令

如何在MS Word 2013中使用键盘快捷键进行放大和缩小?

如何在MS Word 2013中使用通配符替换单词?

如何在MS Word的单个段落中使用多种样式

如何在 MS Powerpoint 中使用带有 VBA 的文本框?

如何在MS Access中使用VBA在列表框中添加新项目

如何在 Word 中使用 VBA 从下拉列表(内容控件)中获取选定值

如何在MS Word 2013中打开VBA编辑器?

如何从python中的许多word文档的多个表中提取所有数据(直接从MS Word提取数据)?

如何使用vba宏从ms word文档中隐藏背景颜色为灰色的表格单元格

如何在不使用MS WORD中使用“查找和替换”的情况下查找是否有重复项

使用Python接受MS Word文档中的所有更改

如何在MS Word中嵌入计算

MS Word VBA:获取文档的附件模板

如何使用键盘选择如何在MS Word中粘贴文本?

如何使用VBA删除MS Powerpoint中的所有转换?

如何在不使用宏的情况下在MS Word中查找文档变量

如果 ms-word 文档包含各种带有 VBA 的短语,如何删除它?

我想使用VBA将所有文本从MS Word文档复制到MS Excel,其中Excel列出了文档及其位置

如何在MS Office中添加VBA?

如何使用VBA在MS-Word中的ContentControl DatePicker中将字符串值设置为日期值

如何使用 VBA 代码检测用户是单击文件 >> 打印为选项还是在 MS Word 或 Excel 中按 CTRL+P?

如何使用VBA删除Word文档的整行

如何在文档开头的MS Word中插入封面?