Ugrás a tartalomra

Hogyan sorolhatjuk fel az összes melléklet nevét az üzenet törzsébe, amikor e-mailt írunk az Outlook programban?

Van-e jó módszer arra, hogy az összes mellékletnevet beszúrjuk az üzenet törzsébe, amikor e-mailt írunk az Outlook programban? Ebben a cikkben arról fogok beszélni, hogyan lehet megoldani ezt a munkát az Outlook programban.

Sorolja fel az összes melléklet nevét az üzenet törzsébe, amikor e-mailt ír VBA-kóddal

Sorolja fel az összes melléklet nevét az üzenet törzsébe, amikor e-mailt ír egy egyszerű szolgáltatással


Sorolja fel az összes melléklet nevét az üzenet törzsébe, amikor e-mailt ír VBA-kóddal

A feladat elvégzéséhez kövesse az alábbi lépéseket:

1. Tartsa lenyomva a ALT + F11 billentyűk megnyitásához Microsoft Visual Basic for Applications ablak.

2. Az Microsoft Visual Basic for Applications ablakban kattintson duplán ThisOutlookSession tól Project1 (VbaProject.OTM) ablaktáblán nyissa meg a módot, majd másolja és illessze be a következő kódot az üres modulba.

VBA kód: Az összes melléklet nevének felsorolása az üzenet törzsébe:

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. Ezután folytassa a kattintással betétlap > Modulok, másolja és illessze be a kódot a megnyitott üres modulba, lásd a képernyőképet:

VBA kód: Az összes melléklet nevének felsorolása az üzenet törzsébe:

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. Kattintson a gombra Eszközök > Referenciák a Microsoft Visual Basic for Applications ablak, a kiugrott Referenciák-Projekt1 párbeszédpanelen ellenőrizze Microsoft Word objektumkönyvtár lehetőség a Elérhető referenciák lista mező, lásd a képernyőképet:

5. Kattints OK a párbeszédpanelből való kilépéshez adja hozzá a makró gombot a Gyorselérési eszköztár. Az újban Üzenet ablak, válasszon További parancsok tól A Gyorselérés eszköztár testreszabása legördülő menü, lásd a képernyőképet:

6. Az Outlook opciók párbeszédpanelen hajtsa végre a következő műveleteket:

(1.) Válassza ki makrók tól Válaszd ki a parancsokat legördülő lista;

(2.) Kattintson az imént beillesztett makró nevére;

(3.) Ezután kattintson hozzáad gombra kattintva hozzáadhatja a makrót a A Gyorselérés eszköztár testreszabása.

7. Ezután kattintson OK a párbeszédpanel bezárásához most beillesztette a makró gombot a Gyorselérési eszköztár, lásd a képernyőképet:

8. Most, amikor új üzenetet hoz létre, és rákattint a makró gombra, a melléklet nevei az üzenet törzse fölé kerülnek, az alábbi képernyőkép szerint:


Sorolja fel az összes melléklet nevét az üzenet törzsébe, amikor e-mailt ír egy egyszerű szolgáltatással

Lehet, hogy a fenti kódot nagyon nehéz alkalmazni, ha van Kutools az Outlook számára, Annak Nevek másolása funkcióval gyorsan átmásolhatja az üzenet mellékletneveit, és bárhová beillesztheti, ahová szüksége van.

Jegyzet:Ennek alkalmazásához Nevek másolása, először is le kell töltenie a Kutools az Outlook számára, majd gyorsan és egyszerűen alkalmazza a funkciót.

Telepítése után Kutools az Outlook számára, kérjük, tegye a következőket:

1. Először kérjük, hozza létre a szükséges új e-mailt, majd kattintson a gombra Kutools > Nevek másolása az újban Üzenet ablak, lásd a képernyőképet:

2. Ezután megjelenik egy felszólító mező, amely emlékezteti Önt a mellékletek nevének a vágólapra másolására, lásd a képernyőképet:

3. Most csak meg kell nyomnia Ctrl + V gombok együtt a melléklet nevének beillesztéséhez a szükséges üzenet törzséhez, lásd a képernyőképet:


Relatívabb cikkek:

  • Válaszoljon az összesre eredeti mellékletekkel az Outlookban
  • Normális esetben, amikor a Válasz mindenkinek funkciót alkalmazza az üzenet megválaszolására az Outlook összes címzettjének, az eredeti mellékletek automatikusan elvesznek. Csatolhatók-e eredeti mellékletek, amikor mindenre válaszol az Outlook programban?
  • Mellékletek letöltése / mentése az Outlookból egy bizonyos mappába
  • Általánosságban elmondható, hogy az e-mail összes mellékletét elmentheti a Mellékletek> Az összes melléklet mentése az Outlook gombra kattintással. De, ha el kell mentenie az összes mellékletet az összes beérkezett e-mailből és e-mailből, ideális? Ez a cikk két megoldást mutat be a mellékletek automatikus letöltésére az Outlook programból egy adott mappába.
  • Alapértelmezett melléklet módosítása Hely mentése az Outlookban
  • Elegem van abból, hogy megtalálja az Outlook indításakor minden egyes alkalommal megadott mellékletet? Ebben az oktatóanyagban megmutatjuk, hogyan lehet megváltoztatni az alapértelmezett csatolási helyet. Ezt követően a megadott mellékletmentő mappa automatikusan megnyílik a mellékletek mentésekor, annak ellenére, hogy újraindítja az Outlook programot.
  • Távolítsa el az összes mellékletet az e-mailből az Outlook programban
  • Normál esetben, amikor egy e-mailt tekint meg, akkor a jobb egérgombbal törölhet egy mellékletet, és kiválaszthatja a Melléklet eltávolítása elemet. Néha sok melléklet lehet egy e-mailben, és unalmas lesz eltávolítani őket egyenként. Itt két egyszerű trükkel gondoskodunk az összes melléklet eltávolításáról egy e-mailben, és az összes melléklet eltávolításáról több e-mailről az Outlookban is.

A legjobb irodai hatékonyságnövelő eszközök

Kutools az Outlook számára - Több mint 100 hatékony funkció az Outlook feltöltéséhez

🤖 AI Mail Assistant: Azonnali profi e-mailek mesterséges intelligencia varázslattal – egyetlen kattintással zseniális válaszok, tökéletes hangnem, többnyelvű elsajátítás. Alakítsa át az e-mailezést könnyedén! ...

???? E-mail automatizálás: Hivatalon kívül (POP és IMAP esetén elérhető)  /  Ütemezze az e-mailek küldését  /  Automatikus CC/BCC szabályok szerint e-mail küldésekor  /  Automatikus továbbítás (Speciális szabályok)   /  Automatikus üdvözlet hozzáadása   /  A több címzettnek szóló e-mailek automatikus felosztása egyedi üzenetekre ...

📨 Email Management: Könnyen visszahívhatja az e-maileket  /  Blokkolja az alanyok és mások átverő e-mailjeit  /  Törölje az ismétlődő e-maileket  /  Részletes keresés  /  Mappák összevonása ...

📁 Attachments ProKötegelt mentés  /  Batch Detach  /  Batch tömörítés  /  Automatikus mentés   /  Automatikus leválasztás  /  Automatikus tömörítés ...

🌟 Interface Magic: 😊További szép és menő hangulatjelek   /  Növelje Outlook termelékenységét a füles nézetekkel  /  Minimalizálja az Outlookot a bezárás helyett ...

👍 Csodák egy kattintással: Válasz mindenkinek a bejövő mellékletekkel  /   Adathalászat elleni e-mailek  /  🕘A feladó időzónájának megjelenítése ...

👩🏼‍🤝‍👩🏻 Névjegyek és naptár: Névjegyek kötegelt hozzáadása a kiválasztott e-mailekből  /  Egy kapcsolattartó csoport felosztása egyéni csoportokra  /  Távolítsa el a születésnapi emlékeztetőket ...

Több, mint 100 Jellemzők Várja felfedezését! Kattintson ide, ha többet szeretne megtudni.

 

 

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