从Excel中调用Word VBA MsgBox函数

有没有可能从Excel VBA中调用Word的MsgBox函数? 由于MsgBox不是Word.Application的一种方法,因此遇到了麻烦。

我试过这个:

Dim objWord As Word.Application Set objWord = New Word.Application Dim objDoc As Word.Document Set objDoc = objWord.Documents.Add objWord.Visible = True objWord.Activate Call objWord.Run("MsgBox", "Hello World") ' Or: Call objDoc.Run("MsgBox", "Hello World") 

但是我收到错误“对象不支持这个属性或方法”,无论我包含哪个“Call”行。

我正在尝试这样做,以便可以在打开的Word文档前面显示一个消息框,指出文档呈现已经完成。 如果我只是打电话给Excel的MsgBox,那么我必须点击Windows任务栏中的闪烁button,才能看到消息框。

Word文档完全由我的Excelmacros生成。

这可能吗?

我有一些function,导出模块并重新导入它们。 它现在被configuration为PPT,但是从我发现的Excel函数一起被黑掉。 还有一种使用VBA编写VBA的方法。 两者都是相当先进的。 这两组函数可能在这里可用:

http://www.cpearson.com/excel/vbe.aspx

但是,这可能是矫枉过正。 这可能是你最好的select,使用popup框而不是VBA msgBox。

 Sub Test() Dim wdApp As Object Dim shl As Object Set wdApp = CreateObject("Word.Application") wdApp.Visible = True wdApp.Activate Set shl = CreateObject("wscript.shell") shl.Popup ("Hello, world!") Set shl = Nothing Set wdApp = Nothing End Sub 

有关如何控制超时/等等的更多详细信息,请参阅这里。

什么是从VBA显示超时值的消息框最好的方法?

它是! 这样做的问题是,单词应用程序的运行function查找具有该名称的macros并运行它们。 我能够做到这一点的方法是在word doc中创build一个创build消息框的子例程。

 Public Sub Testing() Dim objWord As Word.Application Set objWord = New Word.Application Dim objDoc As Word.Document Set objDoc = objWord.Documents.Open("C:\whatnot\Stuff.docm") objWord.Visible = True objWord.Activate objWord.Run ("Testing") End Sub 

然后在Word文档中:

 Public Sub Testing() MsgBox ("Hello World") End Sub