Тема: Как передать параметр из акадовсвкого макроса в вордовский?

Как передать параметр param из акадовсвкого макроса в другой вордовский макрос? Т.е:
param = "Параметр"
wordAp.Application.Run "Normal.Module1.Macros1" "param" ??
--------------------------------
Sub Macros1()
param=??????

Re: Как передать параметр из акадовсвкого макроса в вордовский?

Application.Run  для Word 2000 и выше поддерживает передачу параметров в макрос. Есть правда некоторые неточности, но для Normal.dot работает согласно Help.

Re: Как передать параметр из акадовсвкого макроса в вордовский?

Спасибо! Передавать параметр научился, но как принять его в Macros1?
wordAp.Application.Run MacroName"Normal.Module1.Macros1", varg1:=param1
--------------------
Sub Macros1()
param=??????

Re: Как передать параметр из акадовсвкого макроса в вордовский?

Пример
Public Sub Macros1(param As Variant)
MsgBox "param = " & param
End Sub

Re: Как передать параметр из акадовсвкого макроса в вордовский?

Всё дело в том, что как только перед Sub приписывается Public или ещё что-то, то этот макрос перестаёт быть виден. Т.е. в окне запуска макросов его попросту нет!
И ещё. Всё-таки такая строка в акаде не работает: wordAp.Application.Run MacroName"Normal.Module1.Macros1", varg1:=param1
Наверно придётся параметры через файл передавать. Хоть это и криво но ...

Re: Как передать параметр из акадовсвкого макроса в вордовский?

У вордовского объекта Documentт есть переменные -  Variables.
Можно передать туда параметр из акадовского макроса, а затем вордовским макрасом его прочитать.
Из хелпа:
ActiveDocument.Variables.Add Name:="Temp", Value:="12"

Re: Как передать параметр из акадовсвкого макроса в вордовский?

Нет, просто Макрос вызываемый по кнопке должен быть без параметра, а Word (подчеркиваю версии 2000 и выше) поддерживает Application.Run с параметрами. Все это прекрасно работает. Передача параметра через Variables не лучший способ.

Re: Как передать параметр из акадовсвкого макроса в вордовский?

Усложняем вопрос.
Как передать параметр, являющийся OLE-объектом? Со строками и числами всё ОК, а вот объект не удается пропихнуть никакими силами.
Как запустить Функцию (Public Function XXX () As Object) ?

Re: Как передать параметр из акадовсвкого макроса в вордовский?

M. пишет:

Наверно придётся параметры через файл передавать.

Буфер обмена тоже вариант.