Из Outlook макросы Excel запускаю без проблем. А с сабжем беда Или я многого хочу? У меня
В Excel
Код
Sub test()
Dim oOutlook As Object
Set oOutlook = CreateObject("Outlook.Application")
oOutlook.Application.TestRunMacroOutlook
End Sub
В Outlook (в ThisOutlookSession)
Код
Public Sub TestRunMacroOutlook()
MsgBox 1
End Sub
Делаю так, поскольку единственный намёк, как это сделать, нашёл вот здесь https://www.planetaexcel.ru/forum/?PAGE_NAME=read&FID=8&TID=38653 Там используется вот такая недокументированная возможность "Outlook.Application.macro1" Я получаю ошибку Run-time error '438': Object doesn't support this property or method Офис 2013
Это не совсем то, конечно ) Открывается дополнительное окно Аутлука и нужно ещё больше изголиться, чтобы передать параметр в его макрос. Но спасибо за идею! Сгодится, если уж совсем припрёт )
"Как не палочкой в него, так может камушком ?" Второй суррогат:
Excel - Module1:
Код
Option Explicit
Const pth$ = "C:\Program Files\Microsoft Office\OfficeXY\OUTLOOK.EXE"
Const strpath$ = "C:\Temp\AgentExcel.txt"
Sub para_ersatz_surrogat()
Dim prmtr: prmtr = "Parametr iz Excel z " & Now
'...
Dim nmbr As Byte: nmbr = FreeFile(0)
Open strpath For Output Access Write Lock Write As #nmbr
Print #nmbr, prmtr
Close #nmbr
'
Dim x: x = Shell(pth, vbNormalFocus)
End Sub
Outlook - ThisOutlookSession:
Код
Option Explicit
Const strpath$ = "C:\Temp\AgentExcel.txt"
Private Sub Application_Startup()
If Dir(strpath, vbNormal) = "" Then Exit Sub
Dim prmtr$, nmbr As Byte: nmbr = FreeFile(0)
Open strpath For Input Access Read Lock Read As #nmbr
Line Input #nmbr, prmtr
Close #nmbr
Kill strpath
Call Mak1(prmtr)
End Sub
Public Sub Mak1(Optional prmtr = "Net parametra iz Excel")
MsgBox prmtr
End Sub