Passer au contenu principal

Comment répertorier tous les noms de pièces jointes dans le corps du message lors de la composition d'un e-mail dans Outlook?

Existe-t-il de bons moyens pour nous d'insérer tous les noms de pièces jointes dans le corps du message lors de la rédaction d'un e-mail dans Outlook? Cet article, je vais parler de la façon de résoudre ce travail dans Outlook.

Répertoriez tous les noms de pièces jointes dans le corps du message lors de la composition d'un e-mail avec le code VBA

Répertoriez tous les noms de pièces jointes dans le corps du message lors de la rédaction d'un e-mail avec une fonctionnalité simple


Répertoriez tous les noms de pièces jointes dans le corps du message lors de la composition d'un e-mail avec le code VBA

Veuillez suivre les étapes suivantes pour terminer cette tâche:

1. Maintenez le ALT + F11 clés pour ouvrir le Microsoft Visual Basic pour applications fenêtre.

2. Dans le Microsoft Visual Basic pour applications fenêtre, double-cliquez Cette session Outlook du Projet1 (VbaProject.OTM) volet pour ouvrir le mode, puis copiez et collez le code suivant dans le module vide.

Code VBA: répertorie tous les noms de pièces jointes dans le corps du message:

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. Puis continuez en cliquant insérer > Module, copiez et collez le code ci-dessous dans le module vide ouvert, voir capture d'écran:

Code VBA: répertorie tous les noms de pièces jointes dans le corps du message:

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. Et puis cliquez Outils > Bibliographie dans l' Microsoft Visual Basic pour applications fenêtre, dans le sauté Références-Projet1 boîte de dialogue, cochez Bibliothèque d'objets Microsoft Word Option de Références disponibles zone de liste, voir capture d'écran:

5Cliquez sur OK pour quitter la boîte de dialogue, vous devez ajouter le bouton macro dans le Barre d'outils d'accès rapide. Dans le nouveau Message fenêtre, choisissez Plus de commandes du Personnaliser la barre d'outils Accès rapide déroulant, voir capture d'écran:

6. Dans le Options d'Outlook boîte de dialogue, effectuez les opérations suivantes:

(1.) Sélectionnez Macros du Choisissez les commandes de la liste déroulante;

(2.) Cliquez sur le nom de la macro que vous venez d'insérer;

(3.) Et puis cliquez sur Ajouter pour ajouter la macro dans le Personnaliser la barre d'outils Accès rapide.

7. Puis clique OK pour fermer la boîte de dialogue, maintenant, le bouton macro a été inséré dans le Barre d'outils d'accès rapide, voir capture d'écran:

8. Maintenant, lorsque vous créez un nouveau message et cliquez sur le bouton macro, les noms des pièces jointes seront insérés au-dessus du corps du message comme illustré ci-dessous:


Répertoriez tous les noms de pièces jointes dans le corps du message lors de la rédaction d'un e-mail avec une fonctionnalité simple

Peut-être que le code ci-dessus est si difficile à appliquer si vous avez Kutools for Outlook, Avec son Copier les noms , vous pouvez rapidement copier les noms des pièces jointes d'un message et les coller partout où vous en avez besoin.

Remarque:Appliquer cette Copier les noms, tout d'abord, vous devez télécharger le Kutools for Outlook, puis appliquez la fonction rapidement et facilement.

Après l'installation de Kutools for Outlook, veuillez faire comme ceci:

1. Commencez par créer le nouvel e-mail dont vous avez besoin, puis cliquez sur Kutools > Copier les noms dans le nouveau Message fenêtre, voir capture d'écran:

2. Et puis, une boîte de dialogue apparaîtra pour vous rappeler que les noms des pièces jointes ont été copiés dans le presse-papiers, voir capture d'écran:

3. Maintenant, il vous suffit d'appuyer sur Ctrl + V clés ensemble pour coller les noms des pièces jointes dans le corps du message dont vous avez besoin, voir capture d'écran:


Articles plus relatifs:

  • Répondre à tous avec les pièces jointes d'origine dans Outlook
  • Normalement, lorsque vous appliquez la fonction Répondre à tous pour répondre au message à tous les destinataires dans Outlook, les pièces jointes d'origine seront automatiquement perdues. Est-il possible de joindre des pièces jointes d'origine lors de la réponse à tous dans Outlook?
  • Télécharger / enregistrer les pièces jointes à partir d'Outlook dans un certain dossier
  • De manière générale, vous pouvez enregistrer toutes les pièces jointes d'un e-mail en cliquant sur Pièces jointes> Enregistrer toutes les pièces jointes dans Outlook. Mais, si vous avez besoin de sauvegarder toutes les pièces jointes de tous les e-mails reçus et reçus, l'idéal? Cet article présentera deux solutions pour télécharger automatiquement les pièces jointes à partir d'Outlook vers un certain dossier.
  • Modifier l'emplacement d'enregistrement des pièces jointes par défaut dans Outlook
  • Vous en avez assez de trouver l'emplacement de la pièce jointe que vous avez spécifié à chaque fois lors du lancement d'Outlook? Dans ce didacticiel, nous allons vous montrer comment modifier l'emplacement par défaut des pièces jointes. Après cela, le dossier d'enregistrement des pièces jointes spécifié sera ouvert automatiquement chaque fois que vous enregistrez les pièces jointes même si vous redémarrez Outlook.
  • Supprimer toutes les pièces jointes du courrier électronique dans Outlook
  • Normalement, lorsque vous prévisualisez un e-mail, vous pouvez supprimer une pièce jointe avec un clic droit et sélectionner l'élément Supprimer la pièce jointe. Parfois, il peut y avoir de nombreuses pièces jointes dans un message électronique et il sera fastidieux de les supprimer une par une. Ici, nous vous proposons deux astuces simples pour supprimer toutes les pièces jointes dans un seul e-mail et supprimer toutes les pièces jointes de plusieurs e-mails également dans Outlook.

Meilleurs outils de productivité bureautique

Kutools for Outlook - Plus de 100 fonctionnalités puissantes pour booster votre Outlook

🤖 Assistant de messagerie IA: E-mails professionnels instantanés avec la magie de l'IA : un clic pour des réponses géniales, un ton parfait, une maîtrise multilingue. Transformez l’emailing sans effort ! ...

📧 Email Automation: Absent du bureau (disponible pour POP et IMAP)  /  Programmer l'envoi d'e-mails  /  Auto CC/BCC par règles lors de l'envoi d'un e-mail  /  Transfert automatique (règles avancées)   /  Ajouter un message d'accueil automatique   /  Divisez automatiquement les e-mails multi-destinataires en messages individuels 

(I.e. Email Management: Rappel facile des e-mails  /  Bloquer les e-mails frauduleux par sujets et autres  /  Supprimer les e-mails en double  /  Recherche Avancée  /  Consolider les dossiers 

(I.e. Pièces jointes ProSauvegarde par lots  /  Détachement par lots  /  Compression par lots  /  Enregistrement automatique   /  Détachement automatique  /  Compression automatique 

???? Magie de l'interface: 😊Plus d'émojis jolis et cool   /  Boostez votre productivité Outlook avec des vues à onglets  /  Réduire Outlook au lieu de fermer 

???? Merveilles en un clic: Répondre à tous avec les pièces jointes entrantes  /   E-mails anti-hameçonnage  /  🕘Afficher le fuseau horaire de l'expéditeur 

👩🏼‍🤝‍👩🏻 Contacts et calendrier: Ajouter par lots des contacts à partir des e-mails sélectionnés  /  Diviser un groupe de contacts en groupes individuels  /  Supprimer les rappels d'anniversaire 

infos Caractéristiques 100 Attendez votre exploration ! Cliquez ici pour en savoir plus.

 

 

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