vba - MS Word VBA 中的保留方法名称
问题描述
在 MS-Word 的 VBA 中,毫无疑问,在 Office 的其余部分中,有一些“特殊”方法(宏)名称可以拦截某些击键/UI 命令;例如:
按Ctrl+ z(或 QAT 上的撤消图标)被拦截
Public Sub EditUndo()
按Ctrlk+ y(或 QAT 上的重做图标)被拦截
Public Sub EditRedo()
MS API 文档涵盖了EditUndo和EditRedo,并帮助找到了一些其他可以被覆盖的方法。
但VBA API 文档中似乎NextCell
也不包含任何内容。PrevCell
例如Tab,只要选择在文档表中,就会改变行为:
按下Tab被拦截
Public Sub NextCell()
按Shift+Tab被拦截
Public Sub PrevCell()
这让我想知道是否还有其他特殊方法名称......以及如何找到它们。
所以,我的问题(在提问过程中找到的答案)是:
在哪里可以找到可用于覆盖默认命令的 MS-Word 方法名称的完整列表?
解决方案
开放规范 2.9.75 Fci提供了一长串方法名称,其中一些可以覆盖命令。
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
。该方法可以是公共的或私有的(至少就我的测试而言)
该方法可以是一个子或函数,例如这两个工作:
Private Function DoubleUnderline()
' Ctrl + Shift + D
Stop
End Function
和
Public Sub DoubleUnderline()
' Ctrl + Shift + D
Stop
End Function
推荐阅读
- c++ - TwinCAT:获取文件 (FB_FileGets)
- php - AJAX 不工作,成功功能工作?
- point-cloud-library - PCL RANSAC 模型拟合:如何初始化模型参数?
- python - JSON 文件:用 Python 计算全字数
- javascript - “在声明之前使用了 FormData,这对于 const 变量是非法的”是什么意思?
- android - 如何使用 Room 和 Retrofit 改进这个 RxJava 代码?
- c# - 基于角度的弹丸轨迹
- javascript - jQuery - 将所有突出显示的 tds 插入所有 trs
- angular - Angular:当我点击一个按钮两次时,我怎样才能去不同的路线?
- git - git 试图将一个旧的 master 合并到我的分支中