2013-12-18 3 views
0

Мне нужно отправить некоторые электронные письма с листа excel. В настоящее время я использую Excel2010, но он также должен работать с 2013. Я искал сеть для решения и нашел функцию, которая, к сожалению, не работает для меня.Создание сеанса MAPI в VBA

Sub SendMail(Recepient As String, Address As String, Subject As String, Contents As String) 
    Dim mapi_session As MSMAPI.MAPISession 
    Dim mapi_messages As MSMAPI.MAPIMessages 
    'Set mapi_session = New MSMAPI.MAPISession 
    Set mapi_session = CreateObject("MAPI.Session") 

    ... 

В строке Set mapi_session = New MSMAPI.MAPISession он выдает ошибку, говоря: «Не удалось создать объект по компонентам ActiveX (я переводил с немецкого)». Я сделал еще несколько исследований и наткнулся на поток, который предложил использовать CreateObject вместо этого, но он по-прежнему бросает ту же ошибку. Я включил msmapi32.ocx заранее.

Я довольно новичок в VBA - любая идея в чем проблема?

Спасибо заранее,
Frank

+0

Возможно, проблема заключается в том, что вы используете 64-битный офис/окна, а 'MSMAPI' не поддерживает его. [** 'THIS' **] (http://www.gfi.com/blog/32bit-object-64bit-environment/) может быть возможным решением –

+0

Да, я запускаю 64-битную версию. Я хотел бы избежать взлома реестра, потому что excel-лист будет использоваться на нескольких компьютерах моих коллег. Итак, если отправка почты с MAPI не работает для 64-битных систем - может быть, есть другой способ отправки почты через Excel? – Aaginor

+1

Почему бы не использовать прогноз? –

ответ

0

Попробуйте Set mapi_session = CreateObject("MSMAPI.MAPISession").

0

CDO 1.21 (это то, что «MAPI.Session») больше не устанавливается Outlook. Вы можете скачать его с https://www.microsoft.com/en-us/download/details.aspx?id=3671, но имейте в виду, что он больше не разрабатывается и не поддерживается Microsoft.

Что вы будете делать с CDO 1.21? Вам действительно нужно изменить свой код, чтобы использовать только Outlook Object Model. Вы также можете использовать Redemption - это RDO Семейство объектов (как CDO 1.21) обертка in-proc MAPI, а ее объект RDOSession похож на MAPI.Session в CDO 1.21 (но имеет немало дополнительных положительных героев).

Смежные вопросы