为什么有Word的Application.Activate方法而不是Excel?

Kaz*_*Kaz 5 excel vba ms-word

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

一个Excel.Application对象,而另一方面,仅公开了一个.ActivateMicrosoftApp其中执行显着不同的功能,以"激活该特定应用对象"的方法.

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

Mat*_*don 8

无聊的回答:因为Word.Application并且Excel.Application是完全不同的类型,具有完全不同的实现.

Outlook.Application不会暴露Activate成员.哎呀,它甚至没有暴露出一种Run方法.

我甚至不确定这些Application类共享的不仅仅是类型名称.这里一个基本的"合同",需要被满足(例如VBE主机的顶级对象必须有一个Name),但喜欢的东西ActivateRun没有那么合同.据我所知,"合同"更多地与管道接口有关,而不是与VBA可见的接口(例如,您应该IStream为所有组件公开,并实现一个,IStorage因此VBE知道在何处以及如何保持代码).