Вопрос по excel, vba – Как получить доступ к группам контактов в Excel VBA?

6

Я создаю надстройку Excel, которая отправляет активную книгу в виде вложения в шаблоне электронной почты Outlook определенной группе контактов.

Я получил первые две части для работы с кодом ниже, но я не уверен, как установить.TO поле для контактной группы.

<code>Public Sub Mail_Reports()
    Dim rng As Range
    Dim OutApp As Object
    Dim OutMail As Object 

    With Application
        .EnableEvents = False
        .ScreenUpdating = False
    End With

    On Error Resume Next

    Set OutApp = CreateObject("Outlook.Application")

    'Set this line to the path and file name of your template
    Set OutMail = OutApp.CreateItemFromTemplate("C:\Users\moses\AppData\Roaming\Microsoft\Templates\test.oft")
    On Error Resume Next

    With OutMail
        '.TO field should be set to the contact group
        .BCC = ""
        .Attachments.Add ActiveWorkbook.FullName
        .HTMLBody = Replace(OutMail.HTMLBody, strOldPeriod, strNewPeriod)
        .Subject = Replace(OutMail.Subject, strOldPeriod, strNewPeriod)
        'To display the email leave as is;  to send the Email, change to .Send
        .Display    'or Send
    End With

    On Error GoTo 0

    With Application
        .EnableEvents = True
        .ScreenUpdating = True
    End With

    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub
</code>

Ваш Ответ

2   ответа
0

они не отображали просто текст), вы можете сделать следующее.

With OutMail
    '.TO field should be set to the contact group
    .BCC = ""
    .Attachments.Add ActiveWorkbook.FullName
    .HTMLBody = Replace(OutMail.HTMLBody, strOldPeriod, strNewPeriod)
    .Subject = Replace(OutMail.Subject, strOldPeriod, strNewPeriod)
    'To display the email leave as is;  to send the Email, change to .Send
    .Display    'or Send
    If Not .Recipients.ResolveAll Then
        For Each Recipient In .Recipients
            If Not Recipient.Resolved Then
                MsgBox Recipient.Name & " could not be resolved"
            End If
        Next 
    End If
End With
3

ылки»). Я только что попробовал, как предложено на Рон де Брюин сайт, и это работает.

Не обращай внимания, это работает. Моя путаница заключалась в том, что, хотя он заполнял поле как текстовое значение, Outlook достаточно умен, чтобы распознавать его как группу контактов. У меня был ответ все время, но я не знал его XD. Moses
Эй, старый, я знаю, но эта ссылка не работает - не могли бы вы выложить здесь соответствующий фрагмент ответа Рона - при условии, что он у вас еще ест Huw
@ Huw, вот ссылка, которая имеет пример с частичным движением вниз по странице. Это действительно выглядит так же просто, как ввод имени группы вместо адреса электронной почты. Вы пробовали это? Doug Glancy
Да, это было интересно, но было любопытно по поводу решения этого парня Рона. Всегда приятно иметь вещи для сравнения. Я закончил тем, что нашел резервную копию сайта о том, почему, когда, с 15 апреля (через несколько дней после вашего поста). Не уверен, стоит ли редактировать в обратном порядке, когда теряет это в будущем? Надеюсь, пригодится будущим пользователям переполнения стека! Web.archive.org / веб / 20120415041820 / HTTP: //www.rondebruin.nl/.. Huw
Я также заметил, что это не решает проблему, и должен был упомянуть об этом в своем ответе. Если вы нажмете «Проверить имя», это произойдет, и, как мы обнаружили, даже если вы этого не сделаете, оно отправит нормально. Doug Glancy

Похожие вопросы