如何判断何时在VBA窗口中

我正在C#.net工作,基本上我希望我的插件能够告诉用户是否保存,保存来自Excel本身,或者如果保存来自“Visual Basic for Application”窗口。

有没有办法来判断用户当前是否在“Microsoft Visual Basic for Application”中?

编辑:我不知道这是一个完整的教授解决scheme,但我发现.Application.ActiveWindow.ActiveSheet == null似乎工作。

在错误恢复下一次设置wbk =工作簿(“MyBook.xls”)上的错误goto 0是wbk是什么,然后_设置wbk = workbooks.open(“Mybook.xls”)

你可以做这样的事情,如果项目的VBE窗口打开,返回一个布尔值True/False 。 我不确定C#等价物是什么,但是你可以简单地检查工作簿的VBProject VB Editor是否处于活动状态:

 Function IsVBEActive(wb as Workbook) As Boolean Dim vbProj Set vbProj = wb.vbProject IsVBEActive <> vbProj.VBE.ActiveWindow Is Nothing End Sub 

注意这需要启用对VB项目对象模型的可信访问:

在这里输入图像描述