在MS-Word的VBA中,毫无疑问,在Office的其余部分中,有一些“特殊”方法(宏)名称会拦截某些按键/ UI命令。例如:
按下 Ctrl + z (或QAT上的撤消图标)被
拦截Public Sub EditUndo()
按下 Ctrlk + y (或QAT上的重做图标)会被
拦截Public Sub EditRedo()
MS API文档涵盖了EditUndo和EditRedo,并有助于找到其他可以被覆盖的方法。
但是NextCell
和PrevCell
似乎都未包含在VBA API文档中。例如,只要在文档表中进行选择,就会更改 Tab 行为:
按下 Tab 被
Public Sub NextCell()
拦截按下 Shift + Tab 被
Public Sub PrevCell()
截获
这让我想知道是否还有其他特殊方法名称...以及如何找到它们。
所以,我的问题(在询问过程中找到答案)是:
答案 0 :(得分:2)
Fci枚举提供了一个13位无符号整数,该整数指定 内置命令。
例如,您可能希望包括以下方法:
Sub UnlinkFields()
' Intercepts Ctrl+Shift+F9 to prevent user from
' unlinking fields and breaking your document
End Sub
一些使用说明
如果将这些方法放在Normal.dotm模板中,它们应该具有 全球范围,并适用于所有打开的文档。
将方法放入特定的文档模板意味着它将 仅适用于基于该模板的文档
该模块可以是“公共”或“专用”,即如果您使用
Option Private Module
。
该方法可以是“公开”或“私有”(至少根据我的测试 去)
方法可以是Sub或Function,例如,这两种方法都可以:
Private Function DoubleUnderline()
' Ctrl + Shift + D
Stop
End Function
和
Public Sub DoubleUnderline()
' Ctrl + Shift + D
Stop
End Function