Как открыть шаблон собрания по электронной почте вместо электронной почты с помощью VBA Excel

#excel #vba #outlook

#excel #vba #outlook

Вопрос:

У меня есть создать динамическое электронное письмо, в котором пользователь может отправлять несколько электронных писем в зависимости от количества данных в указанном столбце. Сам код будет следовать текстовому полю слово за словом и генерироваться в теле письма, но в настоящее время я пытаюсь заставить Excel открыть шаблон собрания по электронной почте вместо обычного письма.

Вот код.

 Sub send_mass_email()
    Dim i As Integer
    Dim name, email, body, subject, copy, place, business As String
    Dim OutApp As Object
    Dim OutMail As Object
    
    body = ActiveSheet.TextBoxes("TextBox 1").Text
    
    i = 2
    'Loop down name column starting at row 2 column 1
    Do While Cells(i, 1).Value <> ""
        
        name = Split(Cells(i, 1).Value, " ")(0) 'extract first name
        email = Cells(i, 2).Value
        subject = Cells(i, 3).Value
        copy = Cells(i, 4).Value
        business = Cells(i, 5).Value
        place = Cells(i, 6).Value
        
        'replace place holders
        body = Replace(body, "C1", name)
        body = Replace(body, "C5", business)
        body = Replace(body, "C6", place)
    
        Set OutApp = CreateObject("Outlook.Application")
        Set OutMail = OutApp.CreateItem(0)
        With OutMail
             .to = email
             .cc = copy
             .subject = subject
             .body = body
             '.Attachments.Add ("") 'You can add files here
             .display
             '.Send
        End With
        
        'reset body text
        body = ActiveSheet.TextBoxes("TextBox 1").Text
        
        i = i   1
    Loop
    
    Set OutMail = Nothing
    Set OutApp = Nothing
    MsgBox "Email(s) Sent!"    
End Sub
  

Я пытался использовать olmeeting, но возникает ошибка : Object doesn't support this property or method .

Ответ №1:

Никаких глупых вопросов!

Пожалуйста, обратитесь к документации VBA здесь.

Похоже, вы хотите изменить эту часть кода:

 Set OutMail = OutApp.CreateItem(0)
  

Для

 Set OutMail = OutApp.CreateItem(1)
  

Из документации следует, что, изменив параметр метода .CreateItem на одно из перечисленных здесь значений, вы достигнете желаемого эффекта. Пожалуйста, обратите внимание, что я еще не тестировал его.