Kuinka tulostaa liitteet automaattisesti, kun sähköpostit saapuvat Outlookiin?
Tämä opetusohjelma esittelee menetelmän yhdistää VBA-komentosarja ja Outlook-sääntö, jotta voit tulostaa automaattisesti tiettyjen sähköpostiviestien liitteet, kun ne saapuvat Outlookiin.
Tulosta liitteet automaattisesti tiettyjen sähköpostien saapuessa
Oletetaan, että haluat tulostaa automaattisesti tietyltä lähettäjältä tulevien sähköpostien liitteet. Voit tehdä sen seuraavasti.
Vaihe 1: Luo skripti Outlookissa
Ensinnäkin sinun on luotava VBA-skripti Outlookissa.
1. Käynnistä Outlook, paina muut + F11 näppäimiä samanaikaisesti avataksesi Microsoft Visual Basic for Applications ikkunassa.
2. Vuonna Microsoft Visual Basic for Applications ikkuna, kaksoisnapsauta Project1 > Microsoft Outlook -objektit > ThisOutlookSession avaa ThisOutlookSession (koodi) -ikkunaan ja kopioi sitten seuraava koodi tähän koodiikkunaan.

VBA-koodi 1: Tulosta automaattisesti liitteet (kaiken tyyppiset liitteet), kun sähköpostit saapuvat
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
Huomautus: Tämä koodi tukee kaikentyyppisten sähköpostien liitteiden tulostamista. Jos haluat tulostaa vain määritetyn tyyppisiä liitteitä, kuten pdf-tiedostoja, käytä seuraavaa VBA-koodia.
VBA-koodi 2: Tulosta automaattisesti tietyn tyyppiset liitteet, kun sähköpostit saapuvat
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
Huomautuksia:
3. Siirry eteenpäin ja napsauta Työkalut > Viittauksia. Ponnahdusikkunassa Referenssit – Project1 valintaikkunassa, tarkista Microsoft Scripting Runtime -ruutua ja napsauta sitten OK painiketta.

4. Tallenna koodi ja paina muut + Q avaimet sulkeaksesi Microsoft Visual Basic for Applications ikkunassa.
Huomautus: Varmista, että Ota kaikki makrot käyttöön vaihtoehto on käytössä Outlookissasi. Voit tarkistaa tämän vaihtoehdon noudattamalla alla olevia ohjeita.

Vaihe 2: Luo sääntö komentosarjan käyttöä varten
Kun olet lisännyt VBA-komentosarjan Outlookissa, sinun on luotava sääntö käyttääksesi komentosarjaa tietyin edellytyksin.
1. Siirry Koti-välilehdelle ja napsauta Säännöt > Hallitse sääntöjä ja ilmoituksia.

2. Vuonna Säännöt ja hälytykset valintaikkunassa, napsauta Uusi sääntö -painiketta luodaksesi säännön.
Vinkki: Jos olet lisännyt Outlookiin useita sähköpostitilejä, määritä tili kohdassa Ota muutokset käyttöön tähän kansioon avattavasta luettelosta, johon haluat soveltaa sääntöä. Muussa tapauksessa sitä käytetään valitun sähköpostitilin Saapuneet-kansioon.

3. Ensimmäisessä Ohjattu sääntötoiminto valintaikkunassa, valitse Sovella sääntö vastaanottamiisi viesteihin vuonna Vaihe 1 ja napsauta sitten Seuraava.

4. Toisessa Ohjattu sääntötoiminto valintaikkunassa, sinun tulee:

5. Kolmannessa Ohjattu sääntötoiminto valintaikkunassa, sinun on määritettävä seuraavasti.

Vinkki: Jos ”suorittaa komentosarja"vaihtoehto puuttuu Ohjattu sääntötoiminto, voit näyttää sen noudattamalla tässä artikkelissa mainittua menetelmää: palauta puuttuva Suorita komentosarjaohjelma Outlook-säännössä.
6. Sitten toinen Ohjattu sääntötoiminto ponnahtaa esiin ja pyytää poikkeuksia. Voit valita poikkeuksia tarvittaessa, muussa tapauksessa napsauta seuraava painiketta ilman valintoja.

7. Viimeisessä Ohjattu sääntötoiminto, sinun on määritettävä säännölle nimi ja napsauta sitten Suorittaa loppuun painiketta.

8. Sitten se palaa kohtaan Säännöt ja hälytykset -valintaikkunassa, näet luomasi säännön luettelossa, napsauta OK -painiketta lopettaaksesi kaikki asetukset.

Tästä eteenpäin, kun sähköposti on vastaanotettu määritetyltä henkilöltä, liitetiedostot tulostetaan automaattisesti.
Liittyvät artikkelit
Tulosta vain liite(t) yhdestä sähköpostista tai valituista sähköpostiviesteistä Outlookissa
Outlookissa voit tulostaa sähköpostit, mutta oletko tulostanut liitteet vain yhdestä sähköpostista vai valituista sähköpostiviesteistä Outlookissa? Tässä artikkelissa esitellään temppuja tämän työn ratkaisemiseksi.
Tulosta vain sähköpostiviestin otsikko Outlookissa
Kun tulostat sähköpostin Outlookissa, se tulostaa sekä viestin otsikon että viestin tekstin. Joissakin erikoistapauksissa saatat kuitenkin joutua tulostamaan viestin otsikon, jossa on aihe, lähettäjä, vastaanottajat jne. Tässä artikkelissa esitellään kaksi ratkaisua sen tekemiseen.
Tulosta kalenteri tietyllä/muokatulla ajanjaksolla Outlookissa
Normaalisti, kun kalenteri tulostetaan Outlookin kuukausinäkymässä, se valitsee automaattisesti kuukauden, joka sisältää valitun päivämäärän. Sinun on kuitenkin ehkä tulostettava kalenteri mukautetulla ajanjaksolla, kuten 3 kuukautta, puoli vuotta jne. Tässä artikkelissa esitellään ratkaisu sinulle.
Tulosta kuvallinen yhteystieto Outlookissa
Yleensä yhteystiedon kuvaa ei tulosteta, kun yhteystieto tulostetaan Outlookissa. Mutta joskus on vaikuttavampaa tulostaa yhteystieto sen kuvalla. Tässä artikkelissa esitellään joitain kiertotapoja sen tekemiseksi.
Tulosta valikoima sähköpostiviestejä Outlookissa
Jos saisit sähköpostiviestin ja huomaat, että sähköpostin sisältö on tulostettava koko viestin sijaan, mitä tekisit? Itse asiassa Outlook voi auttaa sinua saavuttamaan tämän toiminnon Internet-selaimien, kuten Firefoxin ja Internet Explorerin, avulla. Tässä otan esimerkiksi Internet-selaimet. Katso seuraavat opetusohjelmat.
Parhaat toimiston tuottavuustyökalut
Breaking News: Kutools for Outlook julkaisee ilmaisen version!
Koe täysin uusi Kutools for Outlook ILMAINEN versio, jossa on yli 70 uskomatonta ominaisuutta, sinun käytössäsi IKUISESTI! Lataa nyt napsauttamalla!
📧 Sähköpostiautomaatio: Automaattinen vastaus (saatavilla POP:lle ja IMAP:lle) / Ajoita sähköpostien lähettäminen / Automaattinen CC/BCC sääntöjen mukaan lähetettäessä sähköpostia / Automaattinen edelleenlähetys (lisäsäännöt) / Automaattinen tervehdys / Jaa usean vastaanottajan sähköpostit automaattisesti yksittäisiksi viesteiksi ...
📨 Sähköposti Management: Muista sähköpostit / Estä huijaussähköpostit aiheiden ja muiden taholta / Poista päällekkäiset sähköpostit / Tarkennettu Haku / Yhdistä kansiot ...
📁 Liitteet Pro: Erätallennus / Erä Irrota / Eräpakkaus / Automaattinen tallennus / Automaattinen irrotus / Automaattinen pakkaus ...
🌟 Interface Magic: 😊Lisää kauniita ja siistejä emojia / Muistuttaa sinua tärkeistä sähköpostiviesteistä / Minimoi Outlook sulkemisen sijaan ...
???? Yhden napsautuksen Wonders: Vastaa kaikkiin liitteillä / Tietojenkalastelun vastaiset sähköpostit / 🕘Näytä lähettäjän aikavyöhyke ...
👩🏼🤝👩🏻 Yhteystiedot ja kalenteri: Erä Lisää yhteystietoja valituista sähköpostiviesteistä / Jaa yhteysryhmä yksittäisiin ryhmiin / Poista syntymäpäivämuistutukset ...

