如何用vba判断是否打开了excel应用程序?

如何在word、ppt中用vba获取已经打开的excel应用程序对象?一文中我介绍了如何通过GetObject函数引用已经打开的Excel应用程序。

 

有老铁私信说如果能先判断是否打开了Excel应用程序就更好了。

 

能做吗?可以的

 

要判断是否当前打开了了excel应用程序?可以借助API来实现。

 

代码如下:

 

 

这是什么原理呢?

 

每个Windows应用程序都归属于一个对应的类,这个类不是类模块的类,其中“XLMAIN”就是Excel应用程序对应的类名。

 

通过用FindWindow查找这个类名,可以找到是否打开了有Excel应用程序,如果打开了,会返回对应的Excel应用程序窗口的句柄。如果没有打开,则返回0。

 

这个方法100%准吗?不一定,有一种情况会失效,公众号评论区讨论下,是什么情况呢?

       

发表评论