我知道如何为样式分配快捷键。但我想创建一个快捷键,其功能类似于粗体/斜体/下划线键(Ctrl-B/Ctrl-I/Ctrl-U):也就是说,当我按下快捷键时,我希望将相关样式切换为 ON;然后当我再次按下快捷键时,我希望将样式切换为 OFF。有办法实现这一点吗?
我已经设置了一个经常使用的样式(偶尔会用在文档中),因此我希望能够在键入时通过键盘快速打开和关闭该样式。(当前的做法是,我必须键入文本,然后返回并选择要应用样式的文本,然后按快捷键。)
注意:一个令人满意的替代方案是能够为“默认段落字体”分配一个快捷键(这样我就可以用一个键来打开特殊样式,然后用另一个键来关闭它——目前你不能在不使用鼠标的情况下做到这一点。)不幸的是,这似乎是你唯一需要的样式。不能指定快捷方式给。(*叹*)
答案1
除了已经建议的 VBA 宏之外,我不知道如何将快捷键设置为切换按钮。
这里最好的替代选项是 control+shift+n,它将样式设置为“正常”,因此您可以使用为自己的样式设置的快捷键,然后按 control+shift+n 返回“正常”样式。
控制+空格的建议实际上只会剥离您添加的额外格式(例如粗体或下划线),并将选定的文本恢复为其原始样式(无论样式是“普通”还是“标题 1”或其他),所以它不会执行您想要的操作。
如果您的样式是仅在单独行上使用的样式(例如标题样式),那么在设置(或修改)样式时,您可以将“后续段落的样式”设置为恢复为“正常”(或任何其他样式 - 如果您希望始终在标题后添加副标题,则可以修改标题 1,转到后续段落的标题 2,然后除非您修改标题 2 以执行其他操作,否则副标题将恢复为正常)。
不过,我同意 OP 的观点,如果在创建时可以将按键设置为切换按钮,那就太好了!
答案2
我想出了两种方法:
使用Ctrl+space清除格式(回答上面的替代方案),或者
创建以下 VBA 宏,并将其分配给快捷键:
If Selection.Style = "KM_Code_ch" Then
Debug.Print ("toggling off")
Selection.Font.Reset
Else
Debug.Print ("toggling on")
Selection.Style = ActiveDocument.Styles("KM_Code_ch")
End If
(注意:这当然只适用于字符样式,而不适用于段落样式。)
答案3
如果您再次按下应用样式的快捷键,则会关闭样式。例如,Ctrl-B会打开粗体,然后Ctrl-B再次将其关闭。