为什么有一个Word的Application.Activate方法,但不适用于Excel?

Word.Application对象公开.Activate方法。

另一方面, Excel.Application对象仅公开一个.ActivateMicrosoftApp方法,该方法执行一个显着不同的function来“激活这个特定的应用程序对象”。

为什么没有Excel.Application.Activate方法?

无聊的答案:因为Word.ApplicationExcel.Application是完全不同的types,完全不同的实现。

Outlook.Application不公开Activate成员。 哎呀,它甚至不暴露一个Run方法。

我什至不知道这些Application类共享任何比types名称更多。 有一个基本的“契约”需要履行(例如一个VBE主机的顶级对象必须有一个Name ),但是像ActivateRun这样的东西不在这个契约上。 据我所知,“契约”更多的是与pipe道相关的接口,而不是VBA可见的接口(例如,你应该公开所有组件的IStream ,并实现一个IStorage以便VBE知道在哪里以及如何保持代码)。