Макрос не показывает открытую почту

Ниже мой макрос для отправки электронной почты, но он не открывает новое электронное письмо.

Этот макрос есть в правилах Outlook.

У вас есть идеи?

  Sub sendemail()

  Dim ns As NameSpace
 'Dim newMail As Outlook.MailItem

Set ns = GetNamespace("MAPI")
 Dim newMail As MailItem
Set newMail = Application.CreateItem()

With newMail
  .To = "aaa@bbb" <--adress to whitch I want to send an email
  .Subject = "test"
  .Display
 End With
Set newMail = Nothing

  End Sub

person Angro    schedule 13.09.2016    source источник
comment
Невозможно, чтобы это называлось правилом. stackoverflow.com/questions/39472855/   -  person niton    schedule 13.09.2016
comment
Вы можете удалить этот вопрос и stackoverflow.com/questions/39472855/, чтобы убедиться, что третий не закрыт как дубликат. Если вас попросят или у вас есть дополнительная информация, просто отредактируйте третий. stackoverflow.com/questions/39484303/   -  person niton    schedule 14.09.2016


Ответы (3)


сначала вам нужно добавить ссылку на внешний вид:

введите здесь описание изображения

Ну вот:

тогда:

Sub sendemail()

  Dim outlook As New outlook.Application
 Dim newMail As outlook.MailItem

    Set newMail = outlook.CreateItem(olMailItem)


    With newMail
      .To = "[email protected]" ' <--adress to whitch I want to send an email
      .Subject = "test from Steph"
      .Display
      .Send
     End With
    Set newMail = Nothing
    outlook.Quit
    Set outlook = Nothing

  End Sub
person suisgrand    schedule 13.09.2016
comment
Я успешно запускаю макрос ниже, но когда я пытаюсь запустить его, как правило, в Outlook, он ничего не делает. = test .Send End With Set newMail = Nothing End Sub - person Angro; 13.09.2016
comment
я обновил свой ответ. проблема, возможно, потребуется добавить ссылку на внешний вид. Дай мне знать - person suisgrand; 13.09.2016

Аргумент должен быть типа MailItem или MeetingItem, чтобы подпрограмма была доступна в мастере правил Outlook.

Попробуй это.

Option Explicit
Sub SendEmail(NewMail As Outlook.MailItem)

    Set NewMail = Application.CreateItem(olMailItem)

    With NewMail
        .To = "aaa@bbb"  '<--adress to whitch I want to send an email
        .Subject = "test"
        .Display
    End With

    Set NewMail = Nothing
End Sub
person 0m3r    schedule 13.09.2016

Вы не указываете элемент для создания. Глянь сюда:

Private Sub SendEmail(ByVal workcenter As Integer, ByVal time As Date)
    Dim objApp As Object
    Dim objEmail As Object
    Set objApp = CreateObject("Outlook.Application")
    Set objEmail = CreateObject("Outlook.MailItem")
    With objEmail
        .To = "[email protected]"
        .Subject = "Multiple Shop Orders run for line " & workcenter & " at " & time
        .body = "TEST"
        .display
    End With
    Set objEmail = Nothing
    Set objApp = Nothing

End Sub

Источник: http://www.vbforums.com/showthread.php?536558-RESOLVED-Outlook-late-binding

эта версия также использует позднее связывание, поэтому вам не нужны дополнительные ссылки.

person Preston    schedule 13.09.2016