【发布时间】:2018-11-12 00:44:58
【问题描述】:
我试图弄清楚为什么我无法运行从用 VB 编写的 VSTO 加载项调用的 Microsoft Word 宏。我能找到的每个参考资料都说你可以用单线做到这一点:
Application.Run("MacroName")
宏本身非常简单...它只是切换“键入时替换文本”设置(AutoCorrect.ReplaceText = Not AutoCorrect.ReplaceText)。当从 Word 本身调用时,它可以完美运行。该宏链接到 normal.dotm 模板,因此无论何时打开 Word 都可以使用它。我正在使用 Word 功能区上的一个按钮,该按钮回调一个函数,该函数又调用宏。
Public Function DisplayHelp(ByVal control As Office.IRibbonControl)
'On Error Resume Next
Dim wdApp As New Microsoft.Office.Interop.Word.Application
wdApp.Run("AC_Test")
UpdateLabel()
End Function
单击按钮不会更改替换文本设置的状态。我在插件开发方面有点缺乏经验,所以感谢任何建议。
谢谢
【问题讨论】:
-
更改替换文本的代码在哪里?您是否尝试调试代码?
-
好吧,我试图将用于替换文本的代码保留在加载项中,而不是调用宏。但是,出于某种原因,即使 Word 应用程序对象可用,如果我尝试使用它来更改 AutoCorrect.ReplaceText 的状态,它也不会更改设置。我能够以编程方式更改它的唯一方法是在宏中。