Excel vba - 如何在excel VBA中引用工作簿内置文档属性?

时间:2017-06-13 14:38:18

标签: excel excel-vba vba

我正在构建一个禁用ctl+D的宏工作簿 现在,问题是 - 当此宏工作簿仍处于打开状态时打开另一个工作簿时,ctl+D也会在其他工作簿中被禁用,因为这是应用程序级别设置。我想限制仅在宏工作簿中禁用ctl+D

为此,我可以在代码中添加一个条件,在禁用ctl+D之前检查工作簿名称。但是,用户在保存到桌面后更改工作簿名称的可能性为90%。

有没有办法在代码中使用工作簿内置属性而不是工作簿名称?请指教。

谢谢!

https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.workbook.builtindocumentproperties.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

示例(伪代码):

if ThisWorkbook.Title = 'TEST' Then
    Application.OnKey "^d", ""
end if

1 个答案:

答案 0 :(得分:0)

使用工作簿事件来检测工作簿何时被激活。

Private Sub Workbook_Activate()
    Application.OnKey "^d", ""
End Sub

Private Sub Workbook_Deactivate()
    Application.OnKey "^d"
End Sub

将此内容放入ThisWorkbook模块中。您可能还想将Ctrl + d取消激活行添加到Workbook_Open事件中。