【问题标题】:VBA Object Model reference documentationVBA 对象模型参考文档
【发布时间】:2014-08-27 11:46:05
【问题描述】:

有没有一个地方我可以简单地找到 Excel 2013 的 VBA 的对象模型层次结构和 API 类型?

我正在查看 MSDN 网址 http://msdn.microsoft.com/en-us/library/office/ff841127(v=office.15).aspx

但这似乎令人困惑。

例子:

如果我在写作

Selection.Interior.ColorIndex = -4142

我希望有一个 API(在线或离线)来理解以 Selection 开头的对象模型,并以我的方式工作(和探索)ColorIndex。通过阅读相关文档。

我认为唯一可行的方法是拥有像 Java Docs 这样的结构化文档。

任何参考/提示都会有所帮助。

System Info:
MS Excel 2013
VBA
Windows 8, 64 bit

更新: 在寻找答案时,我从http://msdn.microsoft.com/en-us/library/aa141044.aspx得到了下图

更新: 根据以下用户 Oliver 的条目: 我的办公室帮助似乎不起作用。

【问题讨论】:

  • 有一个Concepts 部分,对使用范围和工作表等对象进行了一些很好的概述。

标签: excel vba


【解决方案1】:

通常,如果变量或其他标识符可以解析为特定类型,那么 Intellisense 会向您显示该类型的成员。例如:

Application.

将显示成员列表。

Selection 是一种特殊情况,因为虽然当前选定的项目通常是一个单元格区域,但它也可能是其他东西——例如图表的一部分。


您可以通过添加监视(Debug -> Add Watch...)来发现Selection 所指对象的底层类型。在 Expression 框中键入 Selection,并将上下文设置为 (All Procedures)(All Modules)(如果没有这样设置)已经。

Watches窗口中,您将看到Selection引用的对象的实际类型,您可以展开+查看其属性。如果类型为Object/Range,(表示表达式的类型为Object,表达式所引用的对象的类型为Range),则其中一个属性将为Interior。如果查看Interior 的类型列,您会看到Interior/Interior,因为Interior 属性的类型确实是Interior 类型。

如果您在代码中键入以下内容:

ActiveCell.

Intellisense 将向您显示成员列表,包括 Interior 属性,因为 ActiveCell 属性的类型是 Range 类型。


其他一些用于研究对象模型的强大工具:

  • 对象浏览器视图 -> 对象浏览器)根据库向您显示项目可用的类型列表项目参考(可以在 Tools -> References... 查看/更改)。选择类型后,您将看到该类型的成员列表。您可以按库和/或名称过滤类型。 <globals> 类型的成员可以在没有任何对象引用的情况下使用——Interior 需要使用一些 Range 对象,但 Selection 可以单独使用。
  • 即时窗口查看 -> 即时窗口)让您可以评估表达式(带有? 的前言——例如@987654349 @) 并就地运行代码(例如ActiveWorkbook.Save

【讨论】:

    【解决方案2】:

    Excel Developer 参考资料很可能就在您的计算机上,只是很难找到:

    手动方式:

    1. 启动 Excel
    2. 按 Alt-F11 进入 VBA 编辑器
    3. 在菜单栏上,选择“?”->Microsoft Visual Basic 帮助

    现在您正在查看 Excel-VBA 帮助,您甚至可以在左上角的框中搜索“选择”。

    直接链接:

    "C:\Program Files (x86)\Microsoft Office\Office15\CLVIEW.EXE" "EXCEL.DEV" "Microsoft Office Excel"
    

    (至少这适用于 Office 2007,我认为它也适用于 2013)

    【讨论】:

    • 这是我的 CLVIEW.EXE 问题。请看原帖,我已经添加了错误弹窗。
    【解决方案3】:

    您的意思是,在编码时您希望看到像 JavaDoc 这样的函数/子解释? 不幸的是,这在 VBA 中不是标准的。

    但是你可能想看看这个 Is there a good VB6 documentation system similar to Javadoc?

    【讨论】:

      【解决方案4】:

      另一种“查看”Excel 调用的底层对象模型的方法是使用宏记录器。

      1. 并排打开 Excel 工作表和 VBA 环境 (ALT+F11)。
      2. 转到开发人员选项卡并单击“录制宏”。
      3. 在 VBE 中,从项目资源管理器中打开 module1(这是 exlce 默认写入宏的位置)。
      4. 现在在您的工作表中进行更改,看看 Excel 正在编写什么代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-20
        • 1970-01-01
        • 1970-01-01
        • 2012-05-10
        • 2012-07-31
        • 2012-07-30
        相关资源
        最近更新 更多