Note: The other languages of the website are Google-translated. Back to English

Kako shraniti vse priloge iz več e-poštnih sporočil v mapo v Outlooku?

Vse vloge iz e-pošte lahko enostavno shranite z vgrajeno funkcijo Shrani vse priloge v Outlooku. Če pa želite shraniti vse priloge iz več e-poštnih sporočil hkrati, vam neposredna funkcija ne more pomagati. V vsakem e-poštnem sporočilu morate večkrat uporabiti funkcijo Shrani vse priloge, dokler se iz teh e-poštnih sporočil ne shranijo vse priloge. To je zamudno. V tem članku vam predstavljamo dva načina za enostavno shranjevanje vseh prilog iz več e-poštnih sporočil v določeno mapo v Outlooku.

Shranite vse priloge iz več e-poštnih sporočil v mapo s kodo VBA
Več klikov, da shranite vse priloge iz več e-poštnih sporočil v mapo z neverjetnim orodjem


Shranite vse priloge iz več e-poštnih sporočil v mapo s kodo VBA

Ta razdelek prikazuje kodo VBA v vodniku po korakih, ki vam pomaga hitro shraniti vse priloge iz več e-poštnih sporočil naenkrat v določeno mapo. Naredite naslednje.

1. Najprej morate ustvariti mapo za shranjevanje prilog v računalniku.

Pojdi v dokumenti mapo in ustvarite mapo z imenom “Priloge”. Oglejte si posnetek zaslona:

2. Izberite e-poštna sporočila, ki jih boste shranili, in pritisnite druga + F11 tipke za odpiranje Microsoft Visual Basic za aplikacije okno.

3. klik Vstavi > Moduli da odprete Moduli in nato v okno kopirajte eno od naslednjih kod VBA.

Koda VBA 1: množično shranjevanje prilog iz več e-poštnih sporočil (priloge z enakim imenom shranite neposredno)

nasveti: Ta koda bo shranila popolnoma enake priloge z dodajanjem številk 1, 2, 3 ... za imeni datotek.

Dim GCount As Integer
Dim GFilepath As String
Public Sub SaveAttachments()
'Update 20200821
Dim xMailItem As Outlook.MailItem
Dim xAttachments As Outlook.Attachments
Dim xSelection As Outlook.Selection
Dim i As Long
Dim xAttCount As Long
Dim xFilePath As String, xFolderPath As String, xSaveFiles As String
On Error Resume Next
xFolderPath = CreateObject("WScript.Shell").SpecialFolders(16)
Set xSelection = Outlook.Application.ActiveExplorer.Selection
xFolderPath = xFolderPath & "\Attachments\"
If VBA.Dir(xFolderPath, vbDirectory) = vbNullString Then
    VBA.MkDir xFolderPath
End If
GFilepath = ""
For Each xMailItem In xSelection
    Set xAttachments = xMailItem.Attachments
    xAttCount = xAttachments.Count
    xSaveFiles = ""
    If xAttCount > 0 Then
        For i = xAttCount To 1 Step -1
            GCount = 0
            xFilePath = xFolderPath & xAttachments.Item(i).FileName
            GFilepath = xFilePath
            xFilePath = FileRename(xFilePath)
            If IsEmbeddedAttachment(xAttachments.Item(i)) = False Then
                xAttachments.Item(i).SaveAsFile xFilePath
                If xMailItem.BodyFormat <> olFormatHTML Then
                    xSaveFiles = xSaveFiles & vbCrLf & "<Error! Hyperlink reference not valid.>"
                Else
                    xSaveFiles = xSaveFiles & "<br>" & "<a href='file://" & xFilePath & "'>" & xFilePath & "</a>"
                End If
            End If
        Next i
    End If
Next
Set xAttachments = Nothing
Set xMailItem = Nothing
Set xSelection = Nothing
End Sub

Function FileRename(FilePath As String) As String
Dim xPath As String
Dim xFso As FileSystemObject
On Error Resume Next
Set xFso = CreateObject("Scripting.FileSystemObject")
xPath = FilePath
FileRename = xPath
If xFso.FileExists(xPath) Then
    GCount = GCount + 1
    xPath = xFso.GetParentFolderName(GFilepath) & "\" & xFso.GetBaseName(GFilepath) & " " & GCount & "." + xFso.GetExtensionName(GFilepath)
    FileRename = FileRename(xPath)
End If
xFso = Nothing
End Function

Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
    xHtml = xItem.HTMLBody
    xID = "cid:" & xCid
    If InStr(xHtml, xID) > 0 Then
        IsEmbeddedAttachment = True
    End If
End If
End Function
Koda VBA 2: množično shranjevanje prilog iz več e-poštnih sporočil (preverite, ali obstajajo dvojniki)
Public Sub SaveAttachments()
'Update 20200821
Dim xMailItem As Outlook.MailItem
Dim xAttachments As Outlook.Attachments
Dim xSelection As Outlook.Selection
Dim i As Long
Dim xAttCount As Long
Dim xFilePath As String, xFolderPath As String, xSaveFiles As String
Dim xYesNo As Integer
Dim xFlag As Boolean
On Error Resume Next
xFolderPath = CreateObject("WScript.Shell").SpecialFolders(16)
Set xSelection = Outlook.Application.ActiveExplorer.Selection
xFolderPath = xFolderPath & "\Attachments\"
If VBA.Dir(xFolderPath, vbDirectory) = vbNullString Then
    VBA.MkDir xFolderPath
End If
For Each xMailItem In xSelection
    Set xAttachments = xMailItem.Attachments
    xAttCount = xAttachments.Count
    xSaveFiles = ""
    If xAttCount > 0 Then
        For i = xAttCount To 1 Step -1
            xFilePath = xFolderPath & xAttachments.Item(i).FileName
            xFlag = True
            If VBA.Dir(xFilePath, 16) <> Empty Then
                xYesNo = MsgBox("The file is exists, do you want to replace it", vbYesNo + vbInformation, "Kutools for Outlook")
                If xYesNo = vbNo Then xFlag = False
            End If
            If xFlag = True Then
                xAttachments.Item(i).SaveAsFile xFilePath
                If xMailItem.BodyFormat <> olFormatHTML Then
                    xSaveFiles = xSaveFiles & vbCrLf & "<Error! Hyperlink reference not valid.>"
                Else
                    xSaveFiles = xSaveFiles & "<br>" & "<a href='file://" & xFilePath & "'>" & xFilePath & "</a>"
                End If
            End If
        Next i
    End If
Next
Set xAttachments = Nothing
Set xMailItem = Nothing
Set xSelection = Nothing
End Sub

Opombe:

1) Če želite shraniti vse istoimenske priloge v mapo, uporabite zgornje Koda VBA 1. Pred zagonom te kode kliknite Orodja > Referencein nato preverite Izvajanje Microsoftovih skriptov polje v Reference - Projekt pogovorno okno;

doc shrani priloge07

2) Če želite preveriti podvojena imena prilog, uporabite kodo VBA 2. Po zagonu kode se odpre pogovorno okno, ki vas bo opozorilo, ali morate zamenjati podvojene priloge, izberite Da or Ne glede na vaše potrebe.

5. Pritisnite F5 tipko za zagon kode.

Nato se vse priloge v izbranih e-poštnih sporočilih shranijo v mapo, ki ste jo ustvarili v 1. koraku. 

Opombe: Lahko se pojavi a Microsoft Outlook Pojavi se pozivno okno, kliknite na Dovoli gumb za naprej.


Shranite vse priloge iz več e-poštnih sporočil v mapo z neverjetnim orodjem

Če ste novinec v VBA, tukaj toplo priporočam Shrani vse priloge uporabnost Kutools za Outook zate. S tem pripomočkom lahko hitro shranite vse priloge iz več e-poštnih sporočil hkrati z več kliki samo v Outlooku.
Pred uporabo funkcije prosim najprej naložite in namestite Kutools za Outlook.

1. Izberite e-poštna sporočila, ki vsebujejo priloge, ki jih želite shraniti.

Nasvet: Z držanjem gumba lahko izberete več sosednjih e-poštnih sporočil Ctrl tipko in jih izberite enega za drugim;
Ali pa izberite več sosednjih e-poštnih sporočil, tako da držite tipko Shift tipko in izberite prvo in zadnje e-poštno sporočilo.

2. klik Kutools >Orodja za pritrditevShrani vse. Oglejte si posnetek zaslona:

3. V Ljubljani Shrani nastavitve kliknite pogovorno okno , da izberete mapo, v katero želite shraniti priloge, in nato kliknite OK gumb.

3. klik OK dvakrat v naslednjem pojavnem oknu, nato se vse priloge v izbranih e-poštnih sporočilih hkrati shranijo v določeno mapo.

Opombe:

  • 1. Če želite shraniti priloge v različne mape na podlagi e-pošte, preverite Ustvarite podmape v naslednjem slogu in v spustnem meniju izberite slog mape.
  • 2. Poleg shranjevanja vseh prilog lahko priloge shranite tudi pod posebnimi pogoji. Na primer, shraniti želite samo priloge datotek pdf, v katerih ime datoteke vsebuje besedo "Račun", kliknite Dodatne možnosti , da razširite pogoje, in nato konfigurirajte, kot je prikazano na spodnji sliki zaslona.
  • 3. Če želite samodejno shraniti priloge ob prihodu e-pošte, se Samodejno shrani priloge funkcija vam lahko pomaga.
  • 4. Za odstranitev prilog neposredno iz izbranih e-poštnih sporočil se Odstranite vse priloge značilnost Kutools za Outlook ti lahko naredi uslugo.

  Če želite imeti brezplačno (60-dnevno) preskusno različico tega pripomočka, kliknite, če ga želite prenestiin nato nadaljujte z uporabo postopka v skladu z zgornjimi koraki.


Sorodni članki

Vstavite priloge v telo e-poštnega sporočila v programu Outlook
Običajno so priloge prikazane v polju Priloženo v e-poštnem sporočilu. V tej vadnici so na voljo metode za lažje vstavljanje prilog v e-poštno telo v Outlooku.

Samodejno prenesite / shranite priloge iz Outlooka v določeno mapo
Na splošno lahko shranite vse priloge enega e-poštnega sporočila s klikom na Priloge> Shrani vse priloge v Outlooku. Če pa želite shraniti vse priloge iz vseh prejetih in prejetih e-poštnih sporočil, je kakšen ideal? Ta članek bo predstavil dve rešitvi za samodejni prenos prilog iz Outlooka v določeno mapo.

Natisnite vse priloge v enem / več e-poštnih sporočilih v Outlooku
Kot veste, bo e-poštno vsebino, na primer glavo, telo, natisnil le, ko kliknete Datoteka> Natisni v Microsoft Outlooku, ne bo pa natisnil prilog. Tu vam bomo pokazali, kako v programu Microsoft Outlook enostavno natisnete vse priloge v izbranem e-poštnem sporočilu.

Iščite besede v priponki (vsebini) v programu Outlook
Ko v Outlooku vtipkamo ključno besedo v polje za takojšnje iskanje, bo ključno besedo poiskal v zadevah, telesih, prilogah e-poštnih sporočil itd. Zdaj pa moram samo poiskati ključno besedo v vsebini priloge v Outlooku, sploh kaj? Ta članek prikazuje podrobne korake za enostavno iskanje besed v vsebini priloge v Outlooku.

Hranite priloge, ko odgovarjate v Outlooku
Ko posredujemo e-poštno sporočilo v Microsoft Outlooku, izvirne priloge v tem e-poštnem sporočilu ostanejo v posredovanem sporočilu. Ko pa odgovorimo na e-poštno sporočilo, izvirne priloge ne bodo priložene novemu odgovoru. Tukaj bomo predstavili nekaj trikov o ohranjanju izvirnih prilog pri odgovoru v Microsoft Outlooku.


Kutools za Outlook - prinaša 100 naprednih funkcij v Outlook in olajša delo!

  • Samodejno CC / BCC po pravilih pri pošiljanju e-pošte; Samodejno posredovanje naprej Več e-poštnih sporočil po meri; Samodejni odgovor brez strežnika za izmenjavo in več samodejnih funkcij ...
  • Opozorilo pred BCC - prikaži sporočilo, ko poskušate odgovoriti vsem če je vaš poštni naslov na seznamu BCC; Opomni, ko manjkajo priloge, in več opomnikov ...
  • Odgovori (vsi) z vsemi prilogami v e-poštnem pogovoru; Odgovori na veliko e-poštnih sporočil v nekaj sekundah; Samodejno dodaj pozdrav ko odgovor; Dodaj datum v zadevo ...
  • Orodja za priloge: Upravljanje vseh prilog v vseh e-poštnih sporočilih, Samodejno loči, Stisni vse, Preimenuj vse, Shrani vse ... Hitro poročilo, Štejte izbrano pošto...
  • Zmogljiva neželena e-poštna sporočila po meri; Odstranite podvojene pošte in stike... Omogočajo vam pametnejše, hitrejše in boljše delovanje v Outlooku.
strelec kutools outlook kutools zavihek 1180x121
shot kutools outlook kutools plus jeziček 1180x121
 
Komentarji (70)
Ocenjeno 2.75 iz 5 · 2 ocene
Ta komentar je moderator na spletnem mestu minimiziral
Ko poskušam zagnati to, dobim napako v sintaksi na objMsg.Save() - pričakuje =
Ta komentar je moderator na spletnem mestu minimiziral
Ko poskušam zagnati to, dobim napako v sintaksi na objMsg.Save() - pričakuje =
Ta komentar je moderator na spletnem mestu minimiziral
Enaka napaka v sintaksi težave pri objMsg.Save() ...
Ta komentar je moderator na spletnem mestu minimiziral
Nekaj ​​popravkov: 1. objMsg.Save 'without () 2. Objektom je treba dodeliti SET (npr. SET objSelection = objOL.ActiveExplorer.Selection) 3. Glavna zanka mora vsebovati DoEvents, da prepreči izpad s strani Outlooka. 4. Pri obdelavi velike količine pošte (več kot 100) se lahko Outlook zruši. Zdi se, da nekje pušča spomin. Samo moja 2 centa. Poleg hroščev (verjetno zaradi Outlooka 2013) je to res lepo in deluje. Najlepša hvala za delitev.
Ta komentar je moderator na spletnem mestu minimiziral
Hvala za deljenje. Strinjam se s Stephanom glede njegovih prvih dveh točk, glejte nekaj pojasnil o njegovi točki 3. Nazadnje, če dodate DoEvents na pravo mesto, vam bo omogočilo obdelavo velikega števila e-poštnih sporočil (samo zaženite to kodo na 157 e-poštnih sporočilih v Outlooku 2013). Nekaj ​​dodatnih misli: 1) To deluje samo, če uporabljate mapo Dokumenti. Za bolj splošen primer: izbriši vrstico 12, vrstica 15 naj se glasi: strFolderpath = "C:\folder\otherfolder\" substitut C:\mapa\druga mapa\ s katero koli potjo, ki jo imate. 2) Ta koda ne bo izbrisala prilog, če želite, da izbrišete samo vodilni ' iz vrstice 25. 3) Če imate velike priloge, potem je verjetno dobra ideja (kot je zapisal Stephan), da postavite funkcijo DoEvents za vrstico 24. 4) Osebno ne želim na noben način spreminjati e-poštnih sporočil (npr. dodajati pot shranjevanja datoteke v besedilo pošte), če se strinjate z mano, lahko izbrišete vrstico 26-39. 5) Če preskočite moj korak 4, lahko dovolite programu, da spreminja e-poštna sporočila tako, da označite "Dovoli dostop za x čas", nato pa morate klikniti dovoli samo enkrat (prim. 6. korak zgoraj v izvirniku).
Ta komentar je moderator na spletnem mestu minimiziral
"Osebno ne želim na noben način spreminjati e-poštnih sporočil (npr. dodajati pot shranjevanja datoteke v besedilo pošte), če se strinjate z mano, lahko izbrišete vrstico 26-39. 5)"



Kako ga lahko izbrišem PO dejstvu. Idk, kako uporabljati regex z VBA
Ocenjeno 0.5 iz 5
Ta komentar je moderator na spletnem mestu minimiziral
Po zgornjih predlogih sem imel dnevno generirana e-poštna sporočila sistema s priloženim 'report.txt' in sem moral dodati datum poslane shranjenemu imenu datoteke, da bi se izognil prepisom in razlikoval datoteke. Na ustreznih mestih sem naredil naslednje dodatke: add- Dim strSent As String add- strSent = Format(objMsg.SentOn, "yymmdd") add- strFile = strSent & strFile Shranjene datoteke so zdaj 140822Report.txt itd.
Ta komentar je moderator na spletnem mestu minimiziral
Živjo. Poskusil sem vse tukaj, vendar vedno dobivam blok Complile Error if brez konca if. Naredil sem prilagoditve glede na Thomasove predloge. Tukaj je koda..kaj mi manjka? Vsaka pomoč je cenjena. Public Sub SaveAttachments() 'Update 20130828 Dim objOL As Outlook.Application Dim objMsg As Outlook.MailItem Dim objAttachments As Outlook.Attachments Dim objSelection As Outlook.Selection Dim i As Long Dim lngCount As Long Dim Dim strFile As Stles Dim Dim strFile As Stles Dim Dim strFile Kot String objOL = CreateObject("Outlook.Application") objSelection = objOL.ActiveExplorer.Selection strFolderpath = "C:\folder\Attachments\" Za vsak objMsg V objSelection objAttachments = objMsg.Attachments = objMsg.Attachments = objMsg.Attachments strjAttachments lngFi = ObjAttachments lngFi. lngCount > 0 Nato Za i = lngCount To 1 Korak -1 strFile = objAttachments.Item(i).FileName strFile = strFolderpath & strFile objAttachments.Item(i).SaveAsFile strFile DoEvents 'objAttachments.Delem(i) Next). ExitSub: objAttachments = Nič objMsg = Nič Nastavi objSelection = objOL.ActiveExplorer.Selection objOL = Nič Končni pod
Ta komentar je moderator na spletnem mestu minimiziral
To sharon -- Spodnje spletno mesto odpravlja vašo težavo. www_dot_outlook-tips_dot_net/code-samples/save-and-delete-attachments/ NIMA kode funkcije časovnega žiga, ki jo je TXgardner navedel zgoraj, zato, če želite to, morate urediti svojo kodo.
Ta komentar je moderator na spletnem mestu minimiziral
To je delovalo odlično, razen ene težave. Vse priloge v mojih e-poštnih sporočilih so poimenovane enako, tako da, ko jih kopirajo, skript nenehno zamenja isto datoteko z naslednjo prilogo v čakalni vrsti. Ali obstaja način, da jih preimenujemo, namesto da jih prepišemo? Hvala!
Ta komentar je moderator na spletnem mestu minimiziral
Kako odstraniti "Datoteke so bile shranjene v", ki je prikazano spodaj.....
Ta komentar je moderator na spletnem mestu minimiziral
Pravkar sem prilagodil kodo po "Next i" in je dobro delovala:
Naslednja i
Če xSaveFiles <> "" Nato
Če xMailItem.BodyFormat <> olFormatHTML Potem

Else

Konec Če
Ta komentar je moderator na spletnem mestu minimiziral
To je delovalo, hvala za to. Znebil sem se sporočil v e-pošti.
Ocenjeno 5 iz 5
Ta komentar je moderator na spletnem mestu minimiziral
Deluje odlično brez težav! Hvala. Prihranil mi je veliko časa! Hvala, Josh
Ta komentar je moderator na spletnem mestu minimiziral
Hvala! To mi je prihranilo veliko časa in frustracij!
Ta komentar je moderator na spletnem mestu minimiziral
To lahko zaženem, vendar kako in objSelection.Count je 2, vendar bo shranil samo priloge v prvem e-poštnem sporočilu.
Ta komentar je moderator na spletnem mestu minimiziral
To je tisto, kar je trenutno v kodi in shrani vse priloge, vendar doda besedilo samo prvemu sporočilu. Mi lahko kdo pomaga pri tem? Public Sub SaveAttachments() 'Posodobi 20170523 Dim objOL As Outlook.Application Dim objMsg As Outlook.MailItem Dim objAttachments As Outlook.Attachments Dim objSelection As Outlook.Selection Dim I As Long Dim lngCount As Long Dim Dim strFj Nastavi kot String Dim Dim strFj Kot String Dim Dim strFj = CreateObject("Outlook.Application") Nastavi objSelection = objOL.ActiveExplorer.Selection strFolderpath = "C:\Users\brianp\Documents\Attachments\" Za vsak objMsg v objSelection Nastavi objAttachments = objMsg.ngAttsej objMsg.ngAttsej = objMsg.ngAttsej. to za testiranje MsgBox "Subject = " & objMsg.Subject & " lngCount = " & objAttachments.Count Če je lngCount > 0 Potem Za I = lngCount To 1 Korak -1 strFile = objAttachments.Item(I).Ime datoteke strFile = strFolderpath & str objAttachments.Item(I).SaveAsFile strFile Next I End If If objMsg.BodyFormat olFormatHTML Potem objMsg.Body = vbCrLf & "Priložene datoteke so bile shranjene v " & "" & strFile & "" & vbCrLf & objMsg Drugače objMsg.HTMLBody = "" & "Priloženi fil e(-i) so bili shranjeni v " & "" & strFile & "" & "" & objMsg.HTMLBody End If Next ExitSub: Nastavi objAttachments = Nič Nastavi objMsg = Nič Nastavi objSelection = Nič Nastavi objOL = Nič Konec Sub
Ta komentar je moderator na spletnem mestu minimiziral
Zato kliknem povezavo "Kutools za Outlook" in sem usmerjen na stran, ki ni to, ampak "Kutools - združuje več kot 300 naprednih funkcij in orodij za Microsoft Excel."

Nič o Outlooku. Izguba časa.
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Davis,
Ustvarili smo napačno hiperpovezavo. Hvala za vaš opomnik! In oprostite za nevšečnosti, ki so vam bile prinesene.
Ta komentar je moderator na spletnem mestu minimiziral
Hvala vam. Prihrani mi veliko časa.
Ta komentar je moderator na spletnem mestu minimiziral
Ta VBA sem uporabil za nekaj e-poštnih sporočil. Kako to razveljaviti? Nočem teh sporočil v vseh e-poštnih sporočilih (datoteke so bile shranjene v ...). Prosim pomagajte.
Ta komentar je moderator na spletnem mestu minimiziral
Živjo Priyanka, koda VBA ne podpira operacije Razveljavi. Oprostite za nevšečnosti.
Ta komentar je moderator na spletnem mestu minimiziral
Hvala vam! res mi zelo pomaga!!
Ta komentar je moderator na spletnem mestu minimiziral
Koda VBA je delovala ODLIČNO! Hvala.
Ta komentar je moderator na spletnem mestu minimiziral
Koda VBA deluje odlično, vendar ne preverja podvojenih imen datotek - samo jih prepiše. Ali je to mogoče dodati?

ALan
Ta komentar je moderator na spletnem mestu minimiziral
Zdravo Alan,
Koda, na katero sem vam že odgovoril, ima nekaj težav. V vadnico sem dodal nove kode in problem, ki ste ga omenili, je rešen. Prosimo, poglejte in poskusite. Hvala vam!
Tu še ni objavljenih komentarjev
Obremenitev Več
Pustite vaše komentarje
Objava kot gost
×
Ocenite to objavo:
0   Znaki
Predlagane lokacije