VBA Outlook функция MailItem.To пусто (пусто) - PullRequest
1 голос
/ 18 апреля 2019

Проблема заключается в том, как обойти стандартную функцию проверки Outlook, когда пользователь не заполняет объект. Чтобы оставить его пустым.

Я использую для отправки по электронной почте код VBA, поэтому, если объект .To пуст, я получаю сообщение об ошибке отладки.

Моя цель - создать функцию для проверки, когда объект .To пуст, избежать ошибки отладок VBA.и Показать окно сообщения, остановить сценарий VBA, пока объект .To правильно заполнен.

Dim objMail As Outlook.MailItem
Dim objWho As String

objWho = objMail.To

If objMail.To xxxEpmty.something Then
    MsgBox ("Object To is blank")
Else
    objWho = objMail.To

Ответы [ 2 ]

1 голос
/ 19 апреля 2019

Свойство To является строкой.

Sub forceTo()

    Dim objMail As MailItem
    Dim strWho As String

    ' first create mail
    Set objMail = ActiveInspector.CurrentItem

    If objMail.To = "" Then
        MsgBox ("To field is blank")
    Else
        strWho = objMail.To
        MsgBox ("To field contains this text: " & strWho)
    End If

End Sub
1 голос
/ 19 апреля 2019

Используйте vbNullString, если оно пустое

Option Explicit
Public Sub Example()
    Dim objMail As Outlook.MailItem
    Set objMail = Application.CreateItem(0)

    Dim objWho As String
        objWho = ""

        If objWho = vbNullString Then
            MsgBox "Error objwho is blank"
            Exit Sub
        End If

    With objMail
        .To = objWho
        .Send
    End With

End Sub

Вам также следует использовать методы Resolve или ResolveAll, чтобы сопоставить Получателя с адресной книгой.

метод Recipient.Resolve (Outlook)

метод Recipients.ResolveAll (Outlook)

...