Прескочи на основното съдържание

Как да изброя всички имена на прикачени файлове в тялото на съобщението, когато съставям имейл в Outlook?

Автор: Xiaoyang Последна промяна: 2020-10-23

Има ли добри начини да вмъкнем всички имена на прикачени файлове в тялото на съобщението, когато съставяме имейл в Outlook? В тази статия ще говоря за това как да реша тази задача в Outlook.

Избройте всички имена на прикачени файлове в тялото на съобщението, когато пишете имейл с VBA код

Избройте всички имена на прикачени файлове в тялото на съобщението, когато пишете имейл с проста функция


Избройте всички имена на прикачени файлове в тялото на съобщението, когато пишете имейл с VBA код

Моля, изпълнете следните стъпки, за да завършите тази задача:

1. Задръжте натиснат ALT + F11 за да отворите Microsoft Visual Basic за приложения прозорец.

2. В Microsoft Visual Basic за приложения прозорец, щракнете два пъти ThisOutlookSession от Проект1(VbaProject.OTM) прозорец, за да отворите режима, и след това копирайте и поставете следния код в празния модул.

VBA код: Избройте всички имена на прикачени файлове в тялото на съобщението:

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. След това продължете да щраквате Поставете > Модули, копирайте и поставете кода по-долу в отворения празен модул, вижте екранната снимка:

VBA код: Избройте всички имена на прикачени файлове в тялото на съобщението:

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, И после щракнете върху Инструменти > Препратки в Microsoft Visual Basic за приложения прозорец, в изскочил Референции-Проект1 диалогов прозорец, проверете Библиотека с обекти на Microsoft Word опция от Налични препратки списъчно поле, вижте екранна снимка:

5. Щракнете OK за да излезете от диалоговия прозорец, тогава трябва да добавите макро бутона в Лента с инструменти за бърз достъп. В новия Събщение прозорец, изберете Още команди от Персонализирайте лентата с инструменти за бърз достъп падащо меню, вижте екранна снимка:

6. В Outlook Options диалогов прозорец, направете следните операции:

(1.) Изберете Макроси от Изберете команди от падащ списък;

(2.) Щракнете върху името на макроса, което сте вмъкнали току-що;

(3.) И след това щракнете Добави бутон за добавяне на макроса в Персонализирайте лентата с инструменти за бърз достъп.

7, След това кликнете OK за затваряне на диалоговия прозорец, сега бутонът за макрос е вмъкнат в Лента с инструменти за бърз достъп, вижте екранна снимка:

8. Сега, когато създадете ново съобщение и щракнете върху бутона за макроси, имената на прикачените файлове ще бъдат вмъкнати над тялото на съобщението, както е показано на следната екранна снимка:


Избройте всички имена на прикачени файлове в тялото на съобщението, когато пишете имейл с проста функция

Може горният код да е малко труден за прилагане, ако имате Kutools за Outlook, Със своята Копиране на имена можете бързо да копирате имената на прикачените файлове на съобщение и да ги поставите където искате.

Забележка:За да приложите това Копиране на имена, първо, трябва да изтеглите Kutools за Outlookи след това приложете функцията бързо и лесно.

След инсталиране Kutools за Outlook, моля, направете следното:

1. Първо, моля, създайте новия имейл, от който се нуждаете, и след това щракнете Kutools > Копиране на имена в новото Събщение прозорец, вижте екранна снимка:

2. След това ще изскочи поле за подкана, за да ви напомни, че имената на прикачените файлове са копирани в клипборда, вижте екранната снимка:

3. Сега просто трябва да натиснете Ctrl + V клавишите заедно, за да поставите имената на прикачените файлове в тялото на съобщението, което ви е необходимо, вижте екранна снимка:


Още относителни статии:

  • Отговорете на всички с оригинални прикачени файлове в Outlook
  • Обикновено, когато приложите функцията Отговори на всички, за да отговорите на съобщението до всички получатели в Outlook, оригиналните прикачени файлове ще бъдат загубени автоматично. Възможно ли е да прикачвате оригинални прикачени файлове, когато отговаряте на всички в Outlook?
  • Изтегляне/запазване на прикачени файлове от Outlook в определена папка
  • Най-общо казано, можете да запазите всички прикачени файлове на един имейл, като щракнете върху Прикачени файлове > Запазване на всички прикачени файлове в Outlook. Но ако трябва да запазите всички прикачени файлове от всички получени имейли и получаващи имейли, идеално ли е? Тази статия ще представи две решения за автоматично изтегляне на прикачени файлове от Outlook в определена папка.
  • Промяна на местоположението за запазване на прикачени файлове по подразбиране в Outlook
  • Омръзна ли ви да намирате местоположението на прикачения файл, което сте посочили всеки път, когато стартирате Outlook? В този урок ще ви покажем как да промените местоположението на прикачения файл по подразбиране. След това указаната папка за запазване на прикачени файлове ще се отваря автоматично всеки път, когато запишете прикачените файлове, въпреки че рестартирате Outlook.
  • Премахнете всички прикачени файлове от имейл в Outlook
  • Обикновено, когато преглеждате имейл, можете да изтриете прикачен файл, като щракнете с десния бутон и изберете елемента Премахване на прикачения файл. Понякога може да има много прикачени файлове в имейл съобщение и ще бъде досадно да ги премахвате един по един. Тук ви предоставяме два лесни трика за премахване на всички прикачени файлове в един имейл и премахване на всички прикачени файлове от множество имейли, както и в Outlook.

Най-добрите инструменти за продуктивност в офиса

Kutools за Outlook - Над 100 мощни функции, за да заредите вашия Outlook

🤖 AI Mail Assistant: Незабавни професионални имейли с AI магия - с едно щракване до гениални отговори, перфектен тон, многоезично владеене. Трансформирайте имейла без усилие! ...

📧 Автоматизиране на имейли: Извън офиса (налично за POP и IMAP)  /  График за изпращане на имейли  /  Автоматично CC/BCC по правила при изпращане на имейл  /  Автоматично пренасочване (разширени правила)   /  Автоматично добавяне на поздрав   /  Автоматично разделяне на имейлите с множество получатели на отделни съобщения ...

📨 Управление на Email: Лесно извикване на имейли  /  Блокиране на измамни имейли по теми и други  /  Изтриване на дублирани имейли  /  подробно търсене  /  Консолидиране на папки ...

📁 Прикачени файлове ProПакетно запазване  /  Партидно отделяне  /  Партиден компрес  /  Автоматично запазване   /  Автоматично отделяне  /  Автоматично компресиране ...

🌟 Магия на интерфейса: 😊 Още красиви и готини емотикони   /  Увеличете продуктивността на Outlook с изгледи с раздели  /  Минимизирайте Outlook, вместо да затваряте ...

???? Чудеса с едно кликване: Отговорете на всички с входящи прикачени файлове  /   Антифишинг имейли  /  🕘Показване на часовата зона на подателя ...

👩🏼‍🤝‍👩🏻 Контакти и календар: Групово добавяне на контакти от избрани имейли  /  Разделете група контакти на отделни групи  /  Премахнете напомнянията за рожден ден ...

Над 100 Характеристики Очаквайте вашето проучване! Щракнете тук, за да откриете повече.

 

 

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