Gå til hovedindhold

Hvordan viser jeg alle vedhæftede navne i meddelelsesteksten, når man skriver e-mail i Outlook?

Er der nogen gode måder for os at indsætte alle vedhæftede filer i meddelelsesteksten, når vi skriver en e-mail i Outlook? Denne artikel vil jeg tale om, hvordan man løser dette job i Outlook.

Liste over alle vedhæftede navne i meddelelsesteksten, når du skriver e-mail med VBA-kode

Liste over alle vedhæftede navn i meddelelsesteksten, når du komponerer e-mail med en simpel funktion


Liste over alle vedhæftede navne i meddelelsesteksten, når du skriver e-mail med VBA-kode

Benyt følgende trin for at afslutte denne opgave:

1. Hold nede ALT + F11 nøgler til at åbne Microsoft Visual Basic til applikationer vindue.

2. I Microsoft Visual Basic til applikationer dobbeltklik på vinduet Denne OutlookSession fra Project1 (VbaProject.OTM) rude for at åbne tilstanden og derefter kopiere og indsætte følgende kode i det tomme modul.

VBA-kode: Liste over alle vedhæftede navne i meddelelsesteksten:

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. Fortsæt derefter med at klikke indsatte > Moduler, kopier og indsæt nedenstående kode i det åbnede blanke modul, se skærmbillede:

VBA-kode: Liste over alle vedhæftede navne i meddelelsesteksten:

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. Og klik derefter på Værktøjer > Referencer i Microsoft Visual Basic til applikationer vindue, i poppet ud Referencer-projekt1 dialogboks, tjek Microsoft Word-objektbibliotek mulighed fra Tilgængelige referencer listefelt, se skærmbillede:

5. Klik OK for at forlade dialogboksen, skal du tilføje makroknappen til Hurtig adgangs værktøjslinje. I det nye Besked vindue, vælg Flere kommandoer fra Tilpas værktøjslinjen Hurtig adgang drop down, se skærmbillede:

6. I Outlook Options i dialogboksen, skal du udføre følgende handlinger:

(1.) Vælg Makroer fra Vælg kommandoer fra rulleliste

(2.) Klik på makronavnet, som du lige har indsat;

(3.) Og klik derefter på Tilføj knappen for at tilføje makroen til Tilpas værktøjslinjen Hurtig adgang.

7. Klik derefter på OK for at lukke dialogboksen, nu er makroknappen blevet indsat i Hurtig adgangs værktøjslinje, se skærmbillede:

8. Når du nu opretter en ny meddelelse og klikker på makroknappen, indsættes navnene på vedhæftede filer over meddelelsesteksten som følgende skærmbillede:


Liste over alle vedhæftede navn i meddelelsesteksten, når du komponerer e-mail med en simpel funktion

Det kan være, at ovenstående kode er lidt svær for dig at anvende, hvis du har Kutools til Outlook, Med Kopier navne funktion, kan du hurtigt kopiere vedhæftede navne på en besked og indsætte dem hvor som helst, du har brug for.

Bemærk:At anvende dette Kopier navneFor det første skal du downloade Kutools til Outlook, og anvend derefter funktionen hurtigt og nemt.

Efter installation Kutools til Outlookskal du gøre som dette:

1. Først skal du oprette den nye e-mail, du har brug for, og derefter klikke Kutools > Kopier navne i den nye Besked vindue, se skærmbillede:

2. Og så vil en promptboks poppe ud for at minde dig om, at vedhæftede filer er blevet kopieret til udklipsholderen, se skærmbillede:

3. Nu skal du bare trykke Ctrl + V tasterne sammen for at indsætte navnene på de vedhæftede filer til den beskedtekst, du skal bruge, se skærmbillede:


Flere relative artikler:

  • Svar alle med originale vedhæftede filer i Outlook
  • Normalt, når du anvender funktionen Svar alle til at besvare meddelelsen til alle modtagere i Outlook, går de originale vedhæftede filer automatisk tabt. Er det muligt at vedhæfte originale vedhæftede filer, når du svarer til alle i Outlook?
  • Download/Gem vedhæftede filer fra Outlook til en bestemt mappe
  • Generelt kan du gemme alle vedhæftede filer i en e-mail ved at klikke på Vedhæftede filer> Gem alle vedhæftede filer i Outlook. Men hvis du har brug for at gemme alle vedhæftede filer fra alle modtagne e-mails og modtage e-mails, noget ideelt? Denne artikel introducerer to løsninger til automatisk download af vedhæftede filer fra Outlook til en bestemt mappe.
  • Skift standardplacering til lagring af vedhæftede filer i Outlook
  • Er du træt af at finde den vedhæftede placering, du har angivet, hver gang du startede Outlook? I denne vejledning viser vi dig, hvordan du ændrer standardvedhæftningsstedet. Derefter åbnes den angivne vedhæftede arkivmappe automatisk hver gang du gemmer vedhæftede filer, selvom du genstarter Outlook.
  • Fjern alle vedhæftede filer fra e-mail i Outlook
  • Normalt, når du forhåndsviser en e-mail, kan du slette en vedhæftet fil ved at højreklikke og vælge punktet Fjern vedhæftet fil. Nogle gange kan der være mange vedhæftede filer i en e-mail, og det vil være kedeligt at fjerne dem én efter én. Her arrangerer vi dig med to nemme tricks til at fjerne alle vedhæftede filer i én e-mail, og fjerne alle vedhæftede filer fra flere e-mails også i Outlook.

Bedste kontorproduktivitetsværktøjer

Kutools til Outlook - Over 100 kraftfulde funktioner til at superlade din Outlook

🤖 AI Mail Assistant: Øjeblikkelige pro-e-mails med AI-magi – et klik for geniale svar, perfekt tone, flersproget beherskelse. Forvandl e-mailing ubesværet! ...

📧 Email Automation: Ikke til stede (tilgængelig til POP og IMAP)  /  Planlæg Send e-mails  /  Auto CC/BCC efter regler ved afsendelse af e-mail  /  Automatisk videresendelse (avancerede regler)   /  Tilføj automatisk hilsen   /  Opdel automatisk e-mails med flere modtagere i individuelle meddelelser ...

📨 Email Management: Genkald nemt e-mails  /  Bloker svindel-e-mails af emner og andre  /  Slet duplikerede e-mails  /  Avanceret søgning  /  Konsolider mapper ...

📁 Vedhæftede filer ProBatch Gem  /  Batch adskilles  /  Batch komprimere  /  Automatisk gem   /  Automatisk afmontering  /  Automatisk komprimering ...

🌟 Interface Magic: 😊 Flere smukke og seje emojis   /  Boost din Outlook-produktivitet med fanebaserede visninger  /  Minimer Outlook i stedet for at lukke ...

👍 Wonders med et enkelt klik: Besvar alle med indgående vedhæftede filer  /   Anti-phishing e-mails  /  🕘Vis afsenderens tidszone ...

👩🏼‍🤝‍👩🏻 Kontakter og kalender: Batch Tilføj kontakter fra udvalgte e-mails  /  Opdel en kontaktgruppe til individuelle grupper  /  Fjern fødselsdagspåmindelser ...

Over 100 Features Afvent din udforskning! Klik her for at finde mere.

Læs mere       Gratis download      Køb
 

 

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