【问题标题】:Can you control OfficeApps using VBA?您可以使用 VBA 控制 OfficeApps 吗?
【发布时间】:2021-02-11 05:42:13
【问题描述】:

基本上尝试使用 VBA 在 Excel 中与第三方OfficeApp(通过 XML 清单定义)进行交互。更具体地说,它是一个TaskPaneApp,带有一个可点击的图标来启动。

我已经尝试了一段时间,但无法弄清楚。访问Application.CommandBarsApplication.AddInsApplication.AddIns2Application.COMADDIns 似乎不起作用。谷歌搜索也没有给出任何提示。有谁知道这是否可行?

【问题讨论】:

  • 这个第三方OfficeApp是什么?大概是付费的?它是否带有任何文档/联系方式?我知道问起来似乎很愚蠢,但以防万一。我猜没有文档,您一直在工作中使用它,现在想知道是否可以使用它?
  • 嗨@QHarr,是的,它是一个没有文档的付费插件,可以通过 Excel 浏览器运行。虽然创建者计划在未来公开自动化功能,但我想知道是否有任何方法可以使用任何通用 OfficeApp 来做到这一点。
  • 我真的不知道。如果我正在开发一个商业应用程序,我宁愿用户不要干预它,除非通过我选择公开的任何接口(方法/属性)。我开始阅读this,但并没有真正告诉我任何有用的东西。 Excel 浏览器的本质是什么?你能拦截到目标的消息吗?我认为 Web 浏览器控件(例如表单)已接近绝迹,可能存在安全风险。
  • 你为什么要尝试掌控不属于你的东西?

标签: excel vba manifest


【解决方案1】:

宏无法访问插件中声明的私有变量。 这让你处于非常困难的境地。

一种选择是联系加载项的作者并要求他们执行以下操作之一:

  1. 公开特定函数
  2. 实现您需要的自动化功能
  3. 或者卖/给你源代码

另一个选项可能是反编译 - 但您应该检查此加载项的许可证以查看它是否合法。然后添加您需要的功能。但是首先检查许可证和条款/条件。对于较旧的插件,在某些情况下,作者可能会丢失原始源代码,或者因为他们不再关心而授予您许可。

看看以下内容:Possible to view source code or decompile XLL Excel add in

还可以查看以下详细说明如何从 vba 调用 excel-add-in 函数的示例:Call Excel Add-In function in macro,特别是 https://stackoverflow.com/a/35518426/1688441

【讨论】:

    【解决方案2】:

    早期装订/后期装订

    在 VB 编辑器中,可以引用 Office 应用程序的对象库。对对象库的此引用保存在 Excel 文件本身中。因此,无论何时打开文件,对对象库的引用仍然完好无损并且已经可用。

    在 Visual Basic 编辑器中选择工具 -> 参考。

    阅读此处了解更多详情 我想它就是你要找的。​​p>

    https://exceloffthegrid.com/using-vba-to-control-other-office-applications/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-17
      • 2020-07-10
      • 1970-01-01
      • 1970-01-01
      • 2016-03-12
      • 2015-08-27
      相关资源
      最近更新 更多