Salt la conținutul principal

Cum să listezi toate numele atașamentelor în corpul mesajului atunci când compui e-mail în Outlook?

Există vreo modalitate bună de a insera toate numele atașamentelor în corpul mesajului atunci când compunem un e-mail în Outlook? În acest articol, voi vorbi despre cum să rezolvați acest job în Outlook.

Enumerați toate numele atașamentelor în corpul mesajului atunci când compuneți e-mail cu cod VBA

Listează toate numele atașamentelor în corpul mesajului atunci când compui e-mail cu o funcție simplă


Enumerați toate numele atașamentelor în corpul mesajului atunci când compuneți e-mail cu cod VBA

Vă rugăm să parcurgeți pașii următori pentru a finaliza această sarcină:

1. Țineți apăsat butonul ALT + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră.

2. În Microsoft Visual Basic pentru aplicații fereastră, faceți dublu clic Această sesiune Outlook de la Project1 (VbaProject.OTM) pentru a deschide modul, apoi copiați și lipiți următorul cod în modulul gol.

Cod VBA: enumerați toate numele atașamentelor în corpul mesajului:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim xMailItem As MailItem
    If Item.Class = olMail Then
        Set xMailItem = Item
        If xMailItem.Attachments.Count > 0 Then
          AddAttachmentNamesToBody
        End If
    End If
    End Sub

3. Apoi continuați să faceți clic Insera > Module, copiați și lipiți codul de mai jos în modulul gol deschis, vedeți captura de ecran:

Cod VBA: enumerați toate numele atașamentelor în corpul mesajului:

Public Sub AddAttachmentNamesToBody()
    Dim xMailItem As MailItem
    Dim xAttachment As Attachment
    Dim xFileName As String
   Dim xInspector As Outlook.Inspector
    Dim xDoc As Word.Document
    Dim xWdSelection As Word.Selection
    On Error Resume Next
    Set xMailItem = Outlook.ActiveInspector.CurrentItem
    If xMailItem.Attachments.Count = 0 Then
        Exit Sub
    End If
    xFileName = ""
    For Each xAttachment In xMailItem.Attachments
        If xFileName = "" Then
            xFileName = " <" & xAttachment.FileName & "> "
        Else
            xFileName = xFileName & vbCrLf & " <" & xAttachment.FileName & "> "
        End If
    Next xAttachment
    Set xInspector = Outlook.Application.ActiveInspector()
    Set xDoc = xInspector.WordEditor
    Set xWdSelection = xDoc.Application.Selection
    xWdSelection.HomeKey Unit:=wdStory
    xWdSelection.InsertBefore "Attachments: " & vbCrLf & xFileName & vbCrLf & vbCrLf
    Set xMailItem = Nothing
    End Sub

4. Apoi faceți clic pe Instrumente > Referinte în Microsoft Visual Basic pentru aplicații fereastră, în fereastra ieșită Referințe-Proiect1 casetă de dialog, bifați Biblioteca de obiecte Microsoft Word opțiune de la Referințe disponibile casetă listă, vezi captura de ecran:

5. Clic OK pentru a ieși din caseta de dialog, ar trebui să adăugați butonul macro în Bara de instrumente pentru acces rapid. În nou Mesaj fereastra, alege Mai multe comenzi de la Personalizați bara de instrumente cu acces rapid derulează, vezi captura de ecran:

6. În Opțiuni Outlook caseta de dialog, efectuați următoarele operații:

(1.) Selectați Macrocomenzi de la Alegeți comenzi de la lista verticală;

(2.) Faceți clic pe numele macro pe care l-ați inserat chiar acum;

(3.) Și apoi faceți clic pe Adăuga pentru a adăuga macro-ul în Personalizați bara de instrumente cu acces rapid.

7. Apoi apasa OK pentru a închide caseta de dialog, acum, butonul macro a fost introdus în Bara de instrumente pentru acces rapid, vezi captura de ecran:

8. Acum, când creați un mesaj nou și faceți clic pe butonul macro, numele atașamentelor vor fi inserate deasupra corpului mesajului, după cum se arată în următoarea captură de ecran:


Listează toate numele atașamentelor în corpul mesajului atunci când compui e-mail cu o funcție simplă

Poate că codul de mai sus este atât de dificil de aplicat, dacă aveți Kutools pentru Outlook, Cu său Copiați numele caracteristică, puteți copia rapid numele atașamentelor unui mesaj și le puteți lipi oriunde aveți nevoie.

Notă:Pentru a aplica acest lucru Copiați numele, în primul rând, ar trebui să descărcați fișierul Kutools pentru Outlook, apoi aplicați caracteristica rapid și ușor.

După instalare Kutools pentru Outlook, vă rugăm să faceți acest lucru:

1. Mai întâi, vă rugăm să creați noul e-mail de care aveți nevoie, apoi faceți clic Kutools > Copiați numele în nou Mesaj fereastră, vezi captura de ecran:

2. Și apoi, va apărea o casetă de prompt pentru a vă reaminti că numele atașamentelor au fost copiate în clipboard, a se vedea captura de ecran:

3. Acum, trebuie doar să apăsați Ctrl + V tastele împreună pentru a lipi numele atașamentelor în corpul mesajului de care aveți nevoie, consultați captura de ecran:


Mai multe articole relative:

  • Răspundeți tuturor cu atașamente originale în Outlook
  • În mod normal, atunci când aplicați funcția Răspundeți tuturor pentru a răspunde mesajului la toți destinatarii din Outlook, atașamentele originale se vor pierde automat. Este posibil să atașați atașamente originale atunci când răspundeți la toate în Outlook?
  • Descărcați / Salvați atașamente din Outlook într-un anumit folder
  • În general, puteți salva toate atașamentele unui e-mail făcând clic pe Atașamente> Salvați toate atașamentele în Outlook. Dar, dacă trebuie să salvați toate atașamentele din toate e-mailurile primite și primirea e-mailurilor, vreun ideal? Acest articol va introduce două soluții pentru a descărca automat atașamente din Outlook într-un anumit folder.
  • Modificați locația implicită de salvare a atașamentului în Outlook
  • V-ați săturat să găsiți locația atașamentului pe care ați specificat-o de fiecare dată când lansați Outlook? În acest tutorial, vă vom arăta cum să modificați locația implicită a atașamentului. După aceea, folderul specificat pentru salvarea atașamentelor va fi deschis automat de fiecare dată când salvați atașamentele, chiar dacă reporniți Outlook.
  • Eliminați toate atașamentele din e-mail în Outlook
  • În mod normal, când previzualizați un e-mail, puteți șterge un atașament făcând clic dreapta și selectând elementul Eliminare atașament. Uneori pot fi multe atașamente într-un mesaj de e-mail și va fi obositor să le eliminați unul câte unul. Aici vă aranjăm cu două trucuri ușoare pentru a elimina toate atașamentele dintr-un singur e-mail și pentru a elimina toate atașamentele din mai multe e-mailuri și în Outlook.

Cele mai bune instrumente de productivitate de birou

Kutools pentru Outlook - Peste 100 de funcții puternice pentru a vă supraalimenta Outlook

🤖 AI Mail Assistant: E-mailuri profesionale instantanee cu magie AI--un singur clic pentru răspunsuri geniale, ton perfect, stăpânire în mai multe limbi. Transformați e-mailurile fără efort! ...

📧 Automatizare e-mail: În afara biroului (disponibil pentru POP și IMAP)  /  Programați trimiterea de e-mailuri  /  CC/BCC automat după reguli la trimiterea e-mailului  /  Redirecționare automată (Reguli avansate)   /  Adăugare automată felicitare   /  Împărțiți automat e-mailurile cu mai mulți destinatari în mesaje individuale ...

📨 Managementul e-mail: Amintește-ți cu ușurință e-mailurile  /  Blocați e-mailurile înșelătorii de către subiecți și alții  /  Ștergeți e-mailurile duplicate  /  Cautare Avansata  /  Consolidați foldere ...

📁 Atașamente ProSalvați în serie  /  Detașare lot  /  Compresă în loturi  /  Salvare automata   /  Detașare automată  /  Comprimare automată ...

🌟 Magia interfeței: 😊Mai multe emoji drăguțe și cool   /  Îmbunătățiți-vă productivitatea Outlook cu vizualizările cu file  /  Minimizați Outlook în loc să închideți ...

???? Minuni cu un singur clic: Răspundeți tuturor cu atașamentele primite  /   E-mailuri anti-phishing  /  🕘Afișați fusul orar al expeditorului ...

👩🏼‍🤝‍👩🏻 Contacte și calendar: Adăugați în lot contacte din e-mailurile selectate  /  Împărțiți un grup de contact în grupuri individuale  /  Eliminați mementouri de ziua de naștere ...

Peste 100 Caracteristici Așteaptă explorarea ta! Click aici pentru a descoperi mai multe.

 

 

Comments (12)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Why am I getting "user-defined type not defined" when I get to Step 8?
This comment was minimized by the moderator on the site
Why am I getting "user-defined type not defined" when I get to Step 8?
This comment was minimized by the moderator on the site
When I do this, it always put the attachments at the beginning of the message, no matter where my cursor is located. I then have to copy/paste to the bottom of the email. Is there a way to change that?
This comment was minimized by the moderator on the site
Hello, VMS,
If you want to put the attachments at the the position of your cursor, please replace the second code with following code:

Public Sub AddAttachmentNamesToBody()

Dim xMailItem As MailItem

Dim xAttachment As Attachment

Dim xFileName As String

Dim xInspector As Outlook.Inspector

Dim xDoc As Word.Document

Dim xWdSelection As Word.Selection

On Error Resume Next

Set xMailItem = Outlook.ActiveInspector.CurrentItem

If xMailItem.Attachments.Count = 0 Then

Exit Sub

End If

xFileName = ""

For Each xAttachment In xMailItem.Attachments

If xFileName = "" Then

xFileName = " <" & xAttachment.FileName & "> "

Else

xFileName = xFileName & vbCrLf & " <" & xAttachment.FileName & "> "

End If

Next xAttachment

Set xInspector = Outlook.Application.ActiveInspector()

Set xDoc = xInspector.WordEditor

Set xWdSelection = xDoc.Application.Selection

xWdSelection.InsertBefore "Attachments: " & vbCrLf & xFileName & vbCrLf & vbCrLf

Set xMailItem = Nothing

End Sub

Please try, hope it can help you!
This comment was minimized by the moderator on the site
That worked! Now another favor... How do I exclude certain file types or names? My required company signature contains a PNG file that I would like to exclude.Thank you!!
This comment was minimized by the moderator on the site
To exclude some specific files, please apply the below code, please try it.
Public Sub AddAttachmentNamesToBody()

Dim xMailItem As MailItem

Dim xAttachment As Attachment

Dim xFileName As String

Dim xInspector As Outlook.Inspector

Dim xDoc As Word.Document

Dim xWdSelection As Word.Selection

Dim xExt As String

Dim xFound As Boolean

Dim xExtArr As Variant

On Error Resume Next

xExtArr = Array("docx", "exe") 'change the file extension you want to exclude

Set xMailItem = Outlook.ActiveInspector.CurrentItem

If xMailItem.Attachments.Count = 0 Then

Exit Sub

End If

xFileName = ""

For Each xAttachment In xMailItem.Attachments

xExt = VBA.Mid(xAttachment.FileName, VBA.InStrRev(xAttachment.FileName, ".") + 1)

xFound = False

For i = LBound(xExtArr) To UBound(xExtArr)

If xExt = xExtArr(i) Then

xFound = True

Exit For

End If

Next

If xFound = False Then

If xFileName = "" Then

xFileName = " <" & xAttachment.FileName & "> "

Else

xFileName = xFileName & vbCrLf & " <" & xAttachment.FileName & "> "

End If

End If

Next xAttachment

Set xInspector = Outlook.Application.ActiveInspector()

Set xDoc = xInspector.WordEditor

Set xWdSelection = xDoc.Application.Selection

xWdSelection.InsertBefore "Attachments: " & vbCrLf & xFileName & vbCrLf & vbCrLf

Set xMailItem = Nothing

End Sub
This comment was minimized by the moderator on the site
when I tried this code it sends the attachment names in every email that has attachments.
I want it to only do it when I click the macro.

How do I amend the code to do just that?
This comment was minimized by the moderator on the site
I also don't know how to fix it. Anyone could hep on that?
This comment was minimized by the moderator on the site
This is wonderful -- thank you! Is there also a way to somehow view all the attachment names in an email that has been sent to you from someone else (i.e. received)? For some reason, the file names are not displaying in full unless you hover, which is ridiculous when you regularly have 15 files to sort through.
This comment was minimized by the moderator on the site
Hello,
To List all attachment names in an received email, please copy and pase the below VBA code into the ThisOutlookSession module of the Microsoft Visual Basic for Applications window:

Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim xEIDArr As Variant, xEID As Variant, xItem As Object
Dim xAttachment As Attachment
Dim xFileName As String
On Error Resume Next
xEIDArr = Split(EntryIDCollection, ",")
For Each xEID In xEIDArr
Set xItem = Session.GetItemFromID(xEID)
If xItem.Class = olMail Then
xFileName = ""
For Each xAttachment In xItem.Attachments
If IsEmbeddedAttachment(xAttachment) = False Then
If xFileName = "" Then
xFileName = " " & "<" & xAttachment.FileName & ">"
Else
xFileName = xFileName & "
" & " " & "<" & xAttachment.FileName & ">"
End If
End If
Next xAttachment
If xFileName = "" Then Exit Sub
xFileName = "Attachments: " & "
" & xFileName & "
" & "
"
xItem.HTMLBody = "" & xFileName & "" & xItem.HTMLBody
xItem.Save
End If
Next
Set xItem = Nothing
End Sub

Function IsEmbeddedAttachment(Attach As Attachment)
Dim xAttParent As Object
Dim xCID As String, xID As String
Dim xHTML As String
On Error Resume Next
Set xAttParent = Attach.Parent
xCID = ""
xCID = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCID <> "" Then
xHTML = xAttParent.HTMLBody
xID = "cid:" & xCID
If InStr(xHTML, xID) > 0 Then
IsEmbeddedAttachment = True
Else
IsEmbeddedAttachment = False
End If
End If
End Function

After pasting this code, when new emails with attachments arriving in your Outlook, the attachment names will be listed at the top of the message body automatically.
Please try it, hope it can help you!
This comment was minimized by the moderator on the site
this is great. Is there any way to merge this with VMS's request above to exclude some specific files included in signatures (.png, .jpg, etc.)?
This comment was minimized by the moderator on the site
Great, thanks for that. I wonder if it is possible that the list of attachments is only attached when I write to a specific email address?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations