Přejít k hlavnímu obsahu

Jak automaticky vytvořit jméno drahého odesílatele při odpovědi na zprávu v aplikaci Outlook?

Autor: Xiaoyang Naposledy změněno: 2020-08-07

Při odpovídání na e-mailové zprávy byste měli ručně zadat jméno odesílatele a pozdravy. Chcete-li ušetřit čas a zlepšit efektivitu práce, můžete zvážit automatické vytvoření jména a pozdravů drahého odesílatele v aplikaci Outlook. V tomto článku budu hovořit o některých užitečných metodách řešení tohoto úkolu v aplikaci Outlook.

Když odpovíte na zprávu pomocí kódu VBA, automaticky vytvořte jméno a pozdravy drahého odesílatele

Při odpovědi na zprávu pomocí aplikace Kutools pro aplikaci Outlook vytvořte automaticky jméno a pozdrav pozdraveného odesílatele


Když odpovíte na zprávu pomocí kódu VBA, automaticky vytvořte jméno a pozdravy drahého odesílatele

Následující kód VBA vám může pomoci při automatickém vložení jména a pozdravů drahého odesílatele při odpovídání na e-mailovou zprávu, postupujte takto:

1. Podržte ALT + F11 klávesy pro otevření Microsoft Visual Basic pro aplikace okno.

2. V Microsoft Visual Basic pro aplikace okno, dvakrát klikněte ThisOutlookSession z Project1 (VbaProject.OTM) v podokně otevřete režim a poté zkopírujte a vložte následující kód do prázdného modulu.

Kód VBA: Automatické vložení jména a pozdravů drahého odesílatele při odpovědi:

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!"
           Case 0.5 To 0.75
                xGreetStr = " Good afternoon!"
           Case Else
                xGreetStr = " Good evening!"
    End Select
    With xReplyMail
        .Display
        .HTMLBody = "<HTML><Body>Dear " & xSenderName & ",</HTML></Body>" & xGreetStr & .HTMLBody
    End With
End Sub

doc auto milé jméno odesílatele 1

3. Poté zavřete Outlook a restartujte jej, abyste získali efekt kódu, a nyní, když odpovíte na e-mailovou zprávu, do těla se automaticky vloží jméno a pozdravy drahého odesílatele, viz screenshot:

doc auto milé jméno odesílatele 2


Při odpovědi na zprávu pomocí aplikace Kutools pro aplikaci Outlook vytvořte automaticky jméno a pozdrav pozdraveného odesílatele

Pokud máte Kutools pro aplikaci Outlook, S jeho Při odpovědi přidejte pozdrav Pokud Outlook odpoví, automaticky vloží jméno odesílatele.

Kutools pro aplikaci Outlook : s více než 100 užitečnými doplňky Outlooku, můžete to vyzkoušet bez omezení za 60 dní. 

Po instalaci Kutools pro aplikaci Outlook, prosím udělejte to :

1, klikněte Kutools > možnosti, viz screenshot:

doc auto milé jméno odesílatele 3

2. V možnosti v dialogovém okně pod odpověď kartu, zkontrolujte Při odpovědi přidejte pozdrav možnost a poté zadejte pozdravy podle potřeby, viz screenshot:

doc auto milé jméno odesílatele 4

3. Pak klikněte na tlačítko OK k dokončení tohoto nastavení se od nynějška při odpovědi na zprávu automaticky vytvoří pozdravy před tělem zprávy, viz screenshot:

doc auto milé jméno odesílatele 5

Klikněte a stáhněte si Kutools pro Outlook a bezplatnou zkušební verzi hned teď!


Nejlepší nástroje pro produktivitu v kanceláři

Kutools pro aplikaci Outlook - Více než 100 výkonných funkcí, které doplní váš Outlook

🤖 AI Mail Assistant: Okamžité profesionální e-maily s magií umělé inteligence – jedním kliknutím získáte geniální odpovědi, perfektní tón, vícejazyčné ovládání. Transformujte e-maily bez námahy! ...

???? Automatizace e-mailu: Mimo kancelář (k dispozici pro POP a IMAP)  /  Naplánujte odesílání e-mailů  /  Automatická kopie/skrytá kopie podle pravidel při odesílání e-mailu  /  Automatické přeposílání (pokročilá pravidla)   /  Automatické přidání pozdravu   /  Automaticky rozdělte e-maily pro více příjemců na jednotlivé zprávy ...

📨 Email management: Snadné vyvolání e-mailů  /  Blokujte podvodné e-maily podle předmětů a dalších  /  Odstranit duplicitní e-maily  /  pokročilé vyhledávání  /  Konsolidovat složky ...

📁 Přílohy ProDávkové uložení  /  Dávkové odpojení  /  Dávková komprese  /  Automaticky uložit   /  Automatické odpojení  /  Automatické komprimování ...

???? Rozhraní Magic: 😊 Více pěkných a skvělých emotikonů   /  Zvyšte produktivitu své aplikace Outlook pomocí zobrazení s kartami  /  Minimalizujte aplikaci Outlook namísto zavírání ...

???? Zázraky na jedno kliknutí: Odpovědět všem s příchozími přílohami  /   E-maily proti phishingu  /  🕘Zobrazit časové pásmo odesílatele ...

👩🏼‍🤝‍👩🏻 Kontakty a kalendář: Dávkové přidání kontaktů z vybraných e-mailů  /  Rozdělit skupinu kontaktů na jednotlivé skupiny  /  Odeberte připomenutí narozenin ...

Přes 100 Vlastnosti Očekávejte svůj průzkum! Kliknutím sem zobrazíte další informace.

Více       Stažení zdarma      Nákup
 

 

Comments (12)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi skyyang,

I need the macro to insert only the first name of the person I receive the email from. Not all the names from CC, but not to remove anyone. Also, to maintain my default color scale (R: 31, G: 73, B: 125) and font size (11 pt) with an additional line after the sender name. Please help me with this. Thanks in advance
This comment was minimized by the moderator on the site
Bonjour,
Puis je avoir le code VBA pour insérer "Bonjour prénom," seulement ???

Merci de votre aide.
This comment was minimized by the moderator on the site
Hello, Nicolas
Please apply the below code:
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 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
    With xReplyMail
        .Display
        .HTMLBody = "<HTML><Body>Dear " & xSenderName & ",</HTML></Body>" & .HTMLBody
    End With
End Sub

Please have a try, hope it can help you!
This comment was minimized by the moderator on the site
Hi.
What do i need to edit in the VBA code to include first name only and to omit the "(s)" after Dear?
Thanks
This comment was minimized by the moderator on the site
Hello, Matt,
To solve your problem, the follwoing VBA code may do you a favor:
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 xRcpName As String
  Dim xRecipient As Recipient
  Dim xContactItem As ContactItem
  Dim xExUser As ExchangeUser
  On Error Resume Next
  If Item.Class <> olMail Then Exit Sub
  Set xReplyMail = Item
  xSenderName = ""
  xRcpName = ""
  For Each xRecipient In xReplyMail.Recipients
    Set xExUser = Nothing
    Set xContactItem = Nothing
    If xRecipient.AddressEntry.AddressEntryUserType < 6 Then
      Set xExUser = xRecipient.AddressEntry.GetExchangeUser
    Else
      Set xContactItem = xRecipient.AddressEntry.GetContact
    End If
    If Not xExUser Is Nothing Then
      If xSenderName = "" Then
        xSenderName = xExUser.FirstName
        If xSenderName = "" Then
          xSenderName = xRecipient.Name
        End If
      Else
        xSenderName = xSenderName & ", " & xExUser.FirstName
        If xExUser.FirstName = "" Then
          xSenderName = xSenderName & xRecipient.Name
        End If
      End If
    ElseIf Not xContactItem Is Nothing Then
      If xSenderName = "" Then
        xSenderName = xContactItem.FirstName
        If xSenderName = "" Then
          xSenderName = xRecipient.Name
        End If
      Else
        xSenderName = xSenderName & ", " & xContactItem.FirstName
        If xRecipient.FirstName = "" Then
          xSenderName = xSenderName & xRecipient.Name
        End If
      End If
    Else
      If xSenderName = "" Then
        xSenderName = xRecipient.Name
      Else
        xSenderName = xSenderName & ", " & xRecipient.Name
      End If
    End If
  Next xRecipient
  Select Case Time
    Case 0.3 To 0.5
      xGreetStr = " Good morning!"
    Case 0.5 To 0.75
      xGreetStr = " Good afternoon!"
    Case Else
      xGreetStr = " Good evening!"
  End Select
  With xReplyMail
    .Display
    .HTMLBody = "<HTML><Body>Dear " & xSenderName & ",</HTML></Body>" & xGreetStr & .HTMLBody
  End With
End Sub

Please have a try, hope it can help you!
This comment was minimized by the moderator on the site
Hello
Thank you for the suggestions, although it does not work. I wish to include the first name only and to omit the "(s)" after Dear?
This comment was minimized by the moderator on the site
Hello, Matt,
The above code works well.
First, you must make sure the recipient address has been added into the Contact folder in your Outlook.
If the recipient isn't in the Contact folder, when you applying this code, the full nae will be displayed.
Thank you!
This comment was minimized by the moderator on the site
Hello

Thank you for your reply! I will add contacts to my folder. I was wondering if there is a way to always display the first name only, even without contacts within my folder. For context, I work at a large university, and would be difficult and time-consuming to find all staff members individually.
This comment was minimized by the moderator on the site
Hello, Matt,

Sorry, if you haven't added the contact to the contact folder, the code will not get the recipient's first name.
Thank you!
This comment was minimized by the moderator on the site
Hi.
What do i need to edit in the VBA code to include first name only and to omit the "(s)" after Dear?
Thanks
This comment was minimized by the moderator on the site
Dear Team,

If I have set up the above configuration however, if I am replying to an email that has multiply recipients in the To, the greeting is not defaulting. How do I achieve this?
This comment was minimized by the moderator on the site
Hello, Wesley,
Yes, as you said, if there are multiple recipients in the To field, the greeting will not be inserted by default.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations