在 Microsoft Word 中,如何在未选择任何内容时禁用字体快捷键更改字体?

在 Microsoft Word 中,如何在未选择任何内容时禁用字体快捷键更改字体?

抱歉,标题让人困惑。以下是我想自定义的行为的解释。

在 Microsoft Word 中,“字体”快捷键(Ctrl+ICtrl+BCtrl+U)有两个作用:

  1. 更改已输入文本的字体;以及
  2. 更改将要输入的文本所使用的字体。

而角色(1)则会出现在两种不同的情境中:

  • (a)当文本被选中时;
  • (b)当光标位于单词中间时。

上下文 (b) 给我带来了困难,因为它干扰了“跟踪更改”(完整的解释很复杂,但基本上,Word 会将光标视为“在单词中间”,即使单词的一半是“插入”而另一半是“删除”——可以说是一个错误)。

因此,我想禁用 (b)。具体来说,我希望当Ctrl+I按下 并且没有选择文本时,字体不会改变。

这可能吗?

答案1

是的,将以下三个 VBA 子例程添加到您的 Normal 模板中,或添加到加载到 Word 的 Startup 文件夹中的单独自定义模板中,或者如果它是启用宏的“.docm”文档,则添加到文档本身中。

Sub Bold()
'
' Bold Macro
' Makes the selection bold (toggle)
'
    If Not Selection.Range.Start = Selection.Range.End Then
        Selection.Font.Bold = wdToggle
    End If

End Sub
Sub Italic()
'
' Italic Macro
' Makes the selection italic (toggle)
'
    If Not Selection.Range.Start = Selection.Range.End Then
        Selection.Font.Italic = wdToggle
    End If

End Sub
Sub Underline()
'
' Underline Macro
' Formats the selection with a continuous underline (toggle)
'
    If Not Selection.Range.Start = Selection.Range.End Then
        If Selection.Font.Underline = wdUnderlineNone Then
            Selection.Font.Underline = wdUnderlineSingle
        Else
            Selection.Font.Underline = wdUnderlineNone
        End If
    End If

End Sub

相关内容