Outlook с VBA: ответ на электронное письмо в организации с именем «Только» без имени и имени с определенным шрифтом - PullRequest
1 голос
/ 06 ноября 2019

Я пытаюсь ответить на электронное письмо, и я хочу, чтобы оно использовало мой собственный шрифт и цвет с некоторыми незначительными изменениями в кодах, доступных на https://www.extendoffice.com/fi/documents/outlook/5417-outlook-dear-first-name.html

Public WithEvents GExplorer As Outlook.Explorer
Public WithEvents GMailItem As Outlook.MailItem
Private Sub Application_Startup()
    Set GExplorer = Outlook.Application.ActiveExplorer
End Sub
Private Sub GExplorer_SelectionChange()
    Dim xItem As Object
    On Error Resume Next
    Set xItem = GExplorer.Selection.Item(1)
    If xItem.Class <> olMail Then Exit Sub
    Set GMailItem = xItem
End Sub
Private Sub GMailItem_Reply(ByVal Response As Object, Cancel As Boolean)
    AutoAddGreetingToReply Response
End Sub
Private Sub GMailItem_ReplyAll(ByVal Response As Object, Cancel As Boolean)
    AutoAddGreetingToReply Response
End Sub


Sub AutoAddGreetingToReply(Item As Object)
    Dim xGreetStr As String
    Dim xReplyMail As MailItem
    Dim xSenderName As String
    Dim xRecipient As Recipient
    On Error Resume Next
    If Item.Class <> olMail Then Exit Sub
    Set xReplyMail = Item
    For Each xRecipient In xReplyMail.Recipients
        If xSenderName = "" Then
            xSenderName = xRecipient.Name
        Else
            xSenderName = xSenderName & "," & xRecipient.Name
        End If
    Next xRecipient
    Select Case Time
           Case 0.3 To 0.5
                xGreetStr = " Good morning, thank you for your email."
           Case 0.5 To 0.75
                xGreetStr = " Good afternoon, thank you for your email."
           Case Else
                xGreetStr = " Good evening, thank you for your email."
    End Select
    With xReplyMail
        .Display
        .HTMLBody = "<HTML><Body>Dear " & xSenderName & ",</HTML></Body>" & xGreetStr & .HTMLBody
    End With
End Sub

. определенная степень. Тем не менее, я получаю следующее письмо, в котором код копирует точный макет человека, который написал мне по электронной почте.

enter image description here

Где я хочу изменить этот код, чтобы иметь что-то вроде этого

enter image description here

Можете ли вы помочь мне понять, как я могу изменить этот код для этого? Кроме того, поскольку я запускаю этот код, я не могу использовать Ctrl-Z для отмены. Пока не знаю почему.

Большое спасибо за вашу поддержку

1 Ответ

0 голосов
/ 06 ноября 2019

Вы должны получить правильно сформированную HTML-разметку, чтобы она работала должным образом, но теперь вы пытаетесь добавить документ с существующей разметкой, вот ваш текущий код:

.HTMLBody = "<HTML><Body>Dear " & xSenderName & ",</HTML></Body>" & xGreetStr & .HTMLBody

Вместо этого,Вы должны найти открывающий тег <body> и вставить собственный текст сразу после тега.

.HTMLBody = .HTMLBody.FindTheBodyElement().PasteYourStuff() 

Таким образом, вы получите правильно сформированную HTML-разметку с открывающими и закрывающими тегами <body>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...