Макросът не показва отворена поща

По-долу е моят макрос за изпращане на имейл, но той не отваря нов имейл.

Този макрос е в правилата на 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)


първо трябва да добавите препратката към Outlook:

въведете описание на изображението тук

Ето:

тогава:

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, не направи нищо Sub sendemail() Dim newMail As outlook.MailItem Set newMail = Application.CreateItem(olMailItem) With newMail .To = [email protected] .Subject = тест .Изпращане End With Set newMail = Nothing End Sub - person Angro; 13.09.2016
comment
актуализирах отговора си. проблемът може да се наложи да добавите препратката към Outlook. Кажи ми - 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