У меня есть очень простая подпрограмма Word в шаблоне dotm:
Sub YHelloThar(msg As String)
MsgBox (msg)
End Sub
У меня тогда есть подпрограмма Excel:
Sub CallWordSub()
Dim wdApp As Word.Application
Dim newDoc As Word.Document
'Word template location
strFile = "C:\Some\Folder\MyWordDoc.dotm"
'Get or create Word application
Set wdApp = GetObject(, "Word.Application")
If wdApp Is Nothing Then
Set wdApp = CreateObject("Word.Application")
End If
'Create new Word doc from template
Set newDoc= wdApp.Documents.Add(strFile)
'Call the YHelloThar sub from the word doc
Call wdApp.Run(strFile & "!YHelloThar", "Hello")
End If
End Sub
В последней строке отображается сообщение «Ошибка времени выполнения« 438 »: объект не поддерживает это свойство или метод».
Я не уверен, что я делаю неправильно - все, что я посмотрел, указывает на то, что это правильный способ выполнять вызовы из разных приложений.
Кроме того, если я изменю последнюю строку на вызов без параметров, он внезапно будет работать правильно.