Hogyan lehet automatikusan kinyomtatni a mellékleteket, amikor e-mailek érkeznek az Outlookba?
Ez az oktatóanyag bemutatja a VBA-szkript és az Outlook-szabály kombinálásának módszerét, amely segít automatikusan kinyomtatni bizonyos e-mailek mellékleteit, amikor azok megérkeznek az Outlookba.
A mellékletek automatikus nyomtatása bizonyos e-mailek megérkezésekor
Tételezzük fel, hogy egy bizonyos feladótól beérkező e-mailek mellékleteit szeretné automatikusan kinyomtatni. Ezt a következőképpen teheti meg.
1. lépés: Hozzon létre egy szkriptet az Outlookban
Először is létre kell hoznia egy VBA-szkriptet az Outlookban.
1. Indítsa el az Outlook programot, nyomja meg a gombot más + F11 gombok egyszerre a Microsoft Visual Basic for Applications ablak.
2. Ban,-ben Microsoft Visual Basic for Applications ablakban kattintson duplán Project1 > Microsoft Outlook objektumok > ThisOutlookSession megnyitni ThisOutlookSession (kód) ablakot, majd másolja be a következő kódot ebbe a kódablakba.
VBA-kód 1: Automatikusan kinyomtatja a mellékleteket (minden típusú mellékletet), amikor e-mailek megérkeznek
Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20230223
Dim xFS As FileSystemObject
Dim xTempFolder As String
Dim xAtt As Attachment
Dim xShell As Object
Dim xFolder As Object, xFolderItem As Object
Dim xFileName As String
On Error GoTo xError
If Item.Attachments.Count = 0 Then Exit Sub
Set xFS = New FileSystemObject
xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
xTempFolder = xTempFolder & "\ATMP" & Format(Item.ReceivedTime, "yyyymmddhhmmss")
If Not xFS.FolderExists(xTempFolder) Then
MkDir (xTempFolder)
End If
Set xShell = CreateObject("Shell.Application")
Set xFolder = xShell.NameSpace(0)
For Each xAtt In Item.Attachments
If IsEmbeddedAttachment(xAtt) = False Then
xFileName = xTempFolder & "\" & xAtt.FileName
xAtt.SaveAsFile (xFileName)
Set xFolderItem = xFolder.ParseName(xFileName)
xFolderItem.InvokeVerbEx ("print")
End If
Next xAtt
Set xFS = Nothing
Set xFolder = Nothing
Set xFolderItem = Nothing
Set xShell = Nothing
xError:
If Err <> 0 Then
MsgBox Err.Number & " - " & Err.Description, , "Kutools for Outlook"
Err.Clear
End If
Exit Sub
End Sub
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
Jegyzet: Ez a kód támogatja az e-mailekben kapott minden típusú melléklet nyomtatását. Ha csak a megadott típusú mellékletet szeretné kinyomtatni, például pdf-fájlokat, használja a következő VBA-kódot.
VBA-kód 2: A megadott típusú mellékletek automatikus kinyomtatása e-mailek megérkezésekor
Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20230223
Dim xFS As FileSystemObject
Dim xTempFolder As String
Dim xAtt As Attachment
Dim xShell As Object
Dim xFolder As Object, xFolderItem As Object
Dim xFileType As String, xFileName As String
On Error GoTo xError
If Item.Attachments.Count = 0 Then Exit Sub
Set xFS = New FileSystemObject
xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
xTempFolder = xTempFolder & "\ATMP" & Format(Item.ReceivedTime, "yyyymmddhhmmss")
If Not xFS.FolderExists(xTempFolder) Then
MkDir (xTempFolder)
End If
Set xShell = CreateObject("Shell.Application")
Set xFolder = xShell.NameSpace(0)
For Each xAtt In Item.Attachments
If IsEmbeddedAttachment(xAtt) = False Then
xFileName = xAtt.FileName
xFileType = LCase$(Right$(xFileName, VBA.Len(xFileName) - VBA.InStrRev(xFileName, ".")))
xFileName = xTempFolder & "\" & xFileName
Select Case xFileType
Case "pdf" 'change "pdf" to the file extension you want to print
xAtt.SaveAsFile (xFileName)
Set xFolderItem = xFolder.ParseName(xFileName)
xFolderItem.InvokeVerbEx ("print")
End Select
End If
Next xAtt
Set xFS = Nothing
Set xFolder = Nothing
Set xFolderItem = Nothing
Set xShell = Nothing
xError:
If Err <> 0 Then
MsgBox Err.Number & " - " & Err.Description, , "Kutools for Outlook"
Err.Clear
End If
Exit Sub
End Sub
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
Megjegyzések:
3. Menjen tovább, és kattintson a gombra Eszközök > Hivatkozásokat. A felbukkanóban Referenciák – Projekt1 párbeszédpanelen ellenőrizze a Microsoft Scripting Runtime jelölőnégyzetet, majd kattintson a gombra OK gombot.
4. Mentse el a kódot, és nyomja meg a gombot más + Q gombok a Microsoft Visual Basic for Applications ablak.
Jegyzet: Kérjük, győződjön meg arról, hogy a Engedélyezze az összes makrót opció engedélyezve van az Outlookban. Ezt az opciót az alábbi lépések követésével ellenőrizheti.
2. lépés: Hozzon létre egy szabályt a szkript használatához
Miután hozzáadta a VBA-szkriptet az Outlookhoz, létre kell hoznia egy szabályt a szkript használatához bizonyos feltételek alapján.
1. Lépjen a Kezdőlap fülre, és kattintson a gombra Szabályok > Szabályok és figyelmeztetések kezelése.
2. Ban,-ben Szabályok és riasztások párbeszédpanelen kattintson a Új szabály gombra a szabály létrehozásához.
Tipp: Ha több e-mail fiókot adott hozzá az Outlookhoz, kérjük, adjon meg egy fiókot a Alkalmazza a módosításokat erre a mappára legördülő listából, ahol alkalmazni szeretné a szabályt. Ellenkező esetben az aktuálisan kiválasztott e-mail fiók beérkezett üzenetei közé kerül alkalmazásra.
3. Az elsőben Szabály varázsló párbeszédpanelen válassza ki Alkalmazz szabályt a fogadott üzenetekre a 1 lépés majd kattintson az OK gombra Következő.
4. A másodikban Szabály varázsló párbeszédpanelen:
5. A harmadikban Szabály varázsló párbeszédpanelen az alábbiak szerint kell konfigurálnia.
Tipp: Ha a „futtasson egy szkriptet” lehetőség hiányzik az Ön közül Szabály varázsló, akkor jelenítheti meg az ebben a cikkben említett módszerrel: hiányzó visszaállítás Futtasson egy parancsfájlt az Outlook-szabályban.
6. Aztán még egy Szabály varázsló felbukkan, és kivételeket kér. Szükség esetén kiválaszthatja a kivételeket, ellenkező esetben kattintson a gombra Következő gombot választás nélkül.
7. Az utolsóban Szabály varázsló, meg kell adnia a szabály nevét, majd kattintson a gombra befejez gombot.
8. Ezután visszatér a Szabályok és riasztások párbeszédpanelen belül megtekintheti a létrehozott szabályt, kattintson a OK gombot a teljes beállítás befejezéséhez.
Ezentúl, amikor a megadott személytől e-mail érkezik, a csatolt fájlok automatikusan kinyomtatásra kerülnek.
Kapcsolódó cikkek
Csak egy e-mailből vagy kiválasztott e-mailekből nyomtasson mellékletet az Outlook programban
Az Outlookban kinyomtathatja az e-maileket, de csak egy e-mailből vagy kiválasztott e-mailekből nyomtatta ki a mellékleteket az Outlookban? Ez a cikk bemutatja a feladat megoldásának trükkjeit.
Csak egy e-mail üzenet fejlécének nyomtatása az Outlook programban
Amikor egy e-mailt nyomtat az Outlookban, az üzenet fejlécét és törzsét is kinyomtatja. Néhány speciális esetben azonban előfordulhat, hogy csak ki kell nyomtatnia az üzenet fejlécét a tárgy, a feladó, a címzett stb. feltüntetésével. Ez a cikk két megoldást mutat be erre.
Nyomtasson ki egy naptárt egy megadott/egyéni dátumtartományban az Outlook programban
Normál esetben, ha az Outlook hónap nézetében nyomtat egy naptárt, a program automatikusan kiválasztja az aktuálisan kiválasztott dátumot tartalmazó hónapot. Előfordulhat azonban, hogy a naptárt egyéni dátumtartományon belül kell kinyomtatnia, például 3 hónapon, féléven stb. Ebben a cikkben bemutatjuk a megoldást.
Nyomtasson ki egy névjegyet képpel az Outlookban
Normál esetben a névjegy képe nem kerül kinyomtatásra, amikor az Outlook programban kinyomtatja a névjegyet. De néha sokkal lenyűgözőbb lesz egy névjegy kinyomtatása a képével. Ez a cikk néhány megoldást ismertet a megvalósítás érdekében.
Nyomtasson ki egy e-mailt az Outlook programban
Ha kapott egy e-mailt, és megállapította, hogy az e-mail tartalmának egy részét ki kell nyomtatni a teljes üzenet nyomtatása helyett, mit tennél? Valójában az Outlook internetes böngészők, például a Firefox és az Internet Explorer segítségével segíthet ennek a műveletnek a megvalósításában. Itt például az Internet böngészőket vesszük figyelembe. Kérjük, tekintse meg a következő oktatóanyagokat.
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
???? 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 Pro: Kö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.