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

时间:2016-06-13 14:18:42

标签: excel vba ms-word

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

另一方面,Excel.Application对象只暴露.ActivateMicrosoftApp方法,该方法执行一个显着不同的功能,以激活这个特定的应用程序对象"。

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

1 个答案:

答案 0 :(得分:8)

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

Outlook.Application也不会公开Activate成员。哎呀,它甚至没有公开Run方法。

我甚至不确定这些Application类共享的不仅仅是类型名称。 需要实现的基本“契约”(例如,VBE主机的顶级对象必须有Name),但Activate和{{1}之类的东西不在那份合同上。据我所知,“合同”更多地与管道接口有关,而不是VBA可见的接口(例如,你要为所有组件公开Run,并实现IStream所以VBE知道在哪里以及如何坚持代码。)