MSWord - ActiveX无法调用对象

时间:2018-03-01 04:10:40

标签: matlab activex word-vba

MS Win 8 Pro x64 下使用 MS Word 2013 VBA 通过 ActiveX 服务器调用一年后,以下调用以错误结束:

ActiveDocument.FormFields

昨天我制作了 Windows Update ,其中包括 MSOffice 2013 64位的安全更新。今天我卸载了更新,问题现在仍然存在。

1。 Matlab 2014b

X=actxserver('Word.Application');
XD=X.Documents.Open('file.docx');
XD.FormFields

    No appropriate method, property, or field FormField for class Interface.Microsoft_Word_15.0_Object_Library._Document.

ActiveX 服务器属性的大多数简单直接调用仍然可以正常运行:

XD=X.Documents.Add;
XS=X.Selection;
XS.Font.Name='Courier New';
XS.Pagesetup.RightMargin=28.34646;
... etc

但是,调用Document对象(通过.Documents.Add.ActiveDocument.Documents.Item(1)等)的任何调用都会失败;列出他们的字段或方法没有显示。因此,对Document对象的后续调用不会产生任何结果:

XD=X.Documents.Add;
    XD = Interface.Microsoft_Word_15.0_Object_Library._Document
get(XD)
    struct with no fields.
invoke(XD)       
    <Nothing>

我也没有在Matlab文档中找到任何关于此行为的参考。

2。 MS Word

直接在Visual Basic编辑器中进行的调用工作正常:

MsgBox ActiveDocument.FormFields.Count

    0

我在 VBA 对象浏览器中搜索,但它仍然列出Document对象,包括FormFields类的实例。但该错误表明_Document类没有,而#34;对象浏览器&#34;当我通过使用这个强调的名字寻求。

是否有关于为什么对这些对象的调用失败的参考,而标准的更简单的属性仍然通过 ActiveX 调用工作?

1 个答案:

答案 0 :(得分:0)

<强>解决方案

  1. 修复安装

  2. 选项文件&gt;选项&gt;信任中心&gt;信任中心设置&gt;开发人员宏设置&gt;信任访问VBA项目对象模型已选中,我想从ActiveX启用VBA调用服务器(这是猜测)。

  3. 重启系统。