Excel 添加数学键盘快捷键

Excel 添加数学键盘快捷键

如何让 excel 2013 自动更正数学?例如将 \int 更改为 ∫。我知道如何对一个符号执行此操作,但有没有办法让 excel 识别所有数学自动更正?

答案1

Microsoft(以其无穷的智慧)Application.OMathAutoCorrect.UseOutsideOMath = True在 Excel 选项 ► 校对 ► 自动更正选项 ► 数学自动更正或直接通过 Excel 的 VBA 都没有提供该选项。恕我直言,这可能是由于 Excel 在显示真正的 Unicode 字符和一些常规 ASCII 字符(如打钩(又名单引号或 ASCII 039)用于其他目的。如果某件事不能完全完成,并且无法通过几个可选语言包来完成,那么整个过程可能会被搁置,直到找到解决方案。当 Excel 在其数学编辑器中时,将与不同的界面进行交换,并且所有符号都可以正确显示。

我在 OneDrive 上准备了数学自动更正符号的完整列表这里供您查看:Excel_2013_OMath自动更正条目.xlsx。有一些非常明显的遗漏,例如\grave\bar,Excel 可以自动更正或解释为其他目的,但大多数符号都很好。

这只是意味着我们必须绕过限制并接受任何缺点。虽然 Excel 的 VBA 对象使用OMathAutoCorrect有些不完善,但 Word 中的对象却没有。如果我们从集合中取出所有条目OMathAutoCorrectEntries并将它们转换为标准AutoCorrectEntries集合的附加项,那么它们将在包括 Excel 在内的所有 Office 程序中可用。每个 Office 程序中的最终结果可能会有所不同。

关闭 Excel 和所有其他 Office 程序,然后打开 Word 到新的空白文档并点击Alt+F11进入 VBE。使用下拉菜单插入 ► 模块(或Alt+I, M)。将以下内容粘贴到新窗格中,标题类似于正常 - 新宏 (代码)或者正常 - 模块 1(代码)

Sub Normalize_Math_AutoCorrect_Entries()
    Dim acm As Long, ac As Long, yn As Long, cACEs As AutoCorrectEntries
    Set cACEs = Application.AutoCorrect.Entries
    With Application.OMathAutoCorrect
        .UseOutsideOMath = False    'no longer necessary
        For acm = 1 To .Entries.Count
            yn = vbYes
            For ac = 1 To cACEs.Count
                If cACEs(ac).Name = .Entries(acm).Name Then
                     yn = MsgBox(cACEs(ac).Name & " is currently assigned to " & cACEs(ac).Value & _
                       Chr(46) & Chr(10) & Chr(10) & "Are you sure you want to replace it?", _
                       vbYesNo + vbQuestion, "Duplication")
                    If yn = vbYes Then cACEs(ac).Delete
                    Exit For
                End If
            Next ac
            If yn = vbYes Then _
                Application.AutoCorrect.Entries.Add Name:=.Entries(acm).Name, Value:=.Entries(acm).Value
        Next acm
    End With
    Set cACEs = Nothing
End Sub

完成后,点击Alt+Q返回空白文档。点击Alt+F8打开宏对话框并运行宏。如果遇到重复条目,该过程将暂停,您将看到类似以下内容。

                自动更正覆盖确认

请注意,我选择了一个可以实际显示的符号。由于标准 VBA 消息框无法显示 Unicode,因此许多 Unicode 字符只能用 表示?。这并不意味着符号会被错误添加。与 Excel 一样,这是一个显示限制。

接受或拒绝覆盖。标准AutoCorrectEntries集合中尚未找到的任何内容都会被自动添加。

当这个过程完成后,所有的OMathAutoCorrect条目都将规范化作为标准AutoCorrect条目。如果您打开 Excel,它们应该立即可用。这是在键入空格之前和之后强制自动更正的\beta

        \beta 空格前

        空格后

与此相关的是,我之前写了一篇文章,您可能对此感兴趣,该文章介绍了如何在 Office 程序中通过添加标准AutoCorrect集合来使用风格化分数。以下是该文章的链接:

       Windows 中的样式分数

现在我必须开始编写一个反转例程,以便删除这些条目。由于两个集合之间存在一些重复,我不确定如何处理确认,因为默认集合中总共有 496 个条目OMathAutoCorrect

相关内容