【问题标题】:where can we get documentation for component object model我们在哪里可以获得组件对象模型的文档
【发布时间】:2016-02-09 14:55:54
【问题描述】:

如果有的话,我想要 COM 文档,因为我想知道关于 COM 的所有细节。例如,作为通用规则,将以下代码转换为 word 应用程序

Documents.Add

到 COM 为

oWord.Documents.Add

只需添加对象变量oWord即可。但是我们怎么知道在VBA以下转换

Selection.Font.Color = 16711680

到COM下方

oWord.Selection.Font.Color := wdColorBlue := 16711680

:= wdColorBlue := 16711680 是怎么来的?

我认为应该是:= wdColorBlue:= 16711680。但我无法想象它是:= wdColorBlue := 16711680

我们在哪里可以找到这些小细节?

参考网址:https://autohotkey.com/board/topic/120360-changing-font-type-color-size-with-1-set-of-code-across-all-ms-office-programs/

【问题讨论】:

  • 蓝色的值是0xFF0000,它的含义与COM几乎没有关系,尽管它记录在herethere。您的问题实际上与 COM 本身无关,您需要此特定 COM 对象(MS Word 自动化)的文档及其 COM 接口。
  • 也许我应该专门搜索这个 COM 对象。但我仍然不知道为什么应该提到:= wdColorBlue := 16711680 行,因为它是:= 16711680:= wdColorBlue。可能我不会有运气立即得到答案
  • manual 开头。微软的开发者网络详细描述了 Word 对象模型。
  • @destination-data 我一定会的
  • 好的,我想我可以按照您的要求进行操作,现在... wdColorBlue 是枚举的成员。枚举在 Word 对象模型中有一个“命名空间”。例如,它可能是 Word.WdColor.wdColorBlue,其中 Word 不是 Word Application 对象,而是对 Word DLL/“interop”命名空间的引用。在 VBA 中,不需要完全限定枚举,但在其他语言中,例如 C#,则需要完全限定。如果您搜索 wdColorBlue,您还可以在底部的 VBA IDE 对象浏览器中看到枚举“命名空间”。

标签: vba com


【解决方案1】:

从本机 VBA“翻译”Office 对象模型以在其他语言环境中使用可能会很棘手。阅读另一种语言的代码 sn-ps 是一个很好的入门方法——“感受”它的外观。

需要注意的一个重要方面是,在某些语言中,有必要完全限定某些东西来自的“命名空间”。例如,对于 wdColorBlue 之类的枚举,可能需要“父”枚举,它类似于 WdColor。 (注意Word中的“父”枚举总是以Wd开头,枚举元素以wd开头。)

在某些语言中,您可能需要指定对象模型命名空间,例如 Word。其他语言,例如 C#,两者都需要:Microsoft.Office.Interop.Word.WdColor.wdColorBlue。 (或者,如果已经定义了 using 语句,例如 using Word = Microsoft.Office.Interop.Word,那么它将是 Word.WdColor.wdColorBlue。)

在研究和使用不在代码 sn-ps 中的对象模型部分时,VBA IDE 确实提供了一些工具来补充您可以从官方语言参考中收集到的内容。

  • 对象浏览器 可以在 IDE 中使用 F2 访问 VBA IDE 对象浏览器(Alt+F11 从 Office 应用程序中访问 IDE)。在“查找”框中键入您要查看的术语,您将获得相应对象模型元素的列表。单击一个元素会在下面的窗口中显示更多信息。最底部是带有附加细节的灰色部分。例如,枚举成员(如 wdColorBlue)的“父”枚举命名空间。或方法的签名。 (如果您发现语言参考信息与您在对象浏览器中看到的内容之间存在冲突,则对象浏览器的内容是正确的!)
  • 立即窗口。您还可以使用 VBA IDE 即时窗口 (Ctrlf+G) 查询信息。键入一个问号 (?),后跟术语 - wdColorBlue,例如 - 按 ENTER,将显示 Enum 整数值。在即时窗口中输入时还有 Intellisense。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多