Come stampare automaticamente gli allegati quando arrivano le e-mail in Outlook?
Questo tutorial mostra un metodo per combinare uno script VBA e una regola di Outlook per aiutarti a stampare automaticamente gli allegati di determinate e-mail quando arrivano in Outlook.
Stampa automaticamente gli allegati quando arrivano determinate e-mail
Supponiamo di voler stampare automaticamente gli allegati delle e-mail in arrivo da un determinato mittente. Puoi fare come segue per farlo.
Passaggio 1: crea uno script in Outlook
Innanzitutto, devi creare uno script VBA in Outlook.
1. Avvia Outlook, premi il pulsante altro + F11 tasti contemporaneamente per aprire il file Microsoft Visual Basic, Applications Edition finestra.
2. Nel Microsoft Visual Basic, Applications Edition finestra, fare doppio clic su Project1 > Oggetti di Microsoft Outlook > Questa sessione di Outlook per aprire il ThisOutlookSession (codice) finestra e quindi copiare il codice seguente in questa finestra di codice.
Codice VBA 1: stampa automaticamente gli allegati (tutti i tipi di allegati) quando arrivano le e-mail
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
Nota: Questo codice supporta la stampa di tutti i tipi di allegati ricevuti nelle e-mail. Se desideri stampare solo il tipo di allegato specificato, ad esempio file pdf, applica il seguente codice VBA.
Codice VBA 2: stampa automaticamente il tipo di allegati specificato all'arrivo delle e-mail
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
Note:
3. Vai avanti e fai clic Strumenti > Riferimenti. Nel spuntare Riferimenti – Progetto1 finestra di dialogo, selezionare Runtime di script Microsoft casella, quindi fare clic su OK pulsante.
4. Salvare il codice e premere il tasto altro + Q i tasti per chiudere il file Microsoft Visual Basic, Applications Edition finestra.
Nota: Si prega di assicurarsi che il Abilita tutte le macro opzione è abilitata in Outlook. Puoi controllare questa opzione seguendo i passaggi mostrati di seguito.
Passaggio 2: crea una regola per utilizzare lo script
Dopo aver aggiunto lo script VBA in Outlook, è necessario creare una regola per utilizzare lo script in base a determinate condizioni.
1. Vai alla scheda Home, fai clic su Regole > Gestisci regole e avvisi.
2. Nel Regole e avvisi finestra di dialogo, fare clic su Nuova regola pulsante per creare una regola.
Suggerimenti: Se hai aggiunto più account e-mail a Outlook, specifica un account nel file Applica le modifiche a questa cartella elenco a discesa in cui si desidera applicare la regola. In caso contrario, verrà applicato alla posta in arrivo dell'account e-mail attualmente selezionato.
3. Nella prima Creazione guidata regole finestra di dialogo, selezionare Applica la regola sui messaggi che ricevo nel Passo 1 casella, quindi fare clic Avanti.
4. Nella seconda Creazione guidata regole finestra di dialogo, è necessario:
5. Nella terza Creazione guidata regole finestra di dialogo, è necessario configurare come segue.
Suggerimenti: Se la "eseguire uno scriptL'opzione "manca nel tuo Creazione guidata regole, puoi visualizzarlo seguendo il metodo menzionato in questo articolo: ripristino mancante Esegui una pption di script nella regola di Outlook.
6. Poi un altro Creazione guidata regole si apre chiedendo eccezioni. È possibile selezionare le eccezioni se necessario, altrimenti fare clic su Avanti pulsante senza alcuna selezione。
7. Nell'ultimo Creazione guidata regole, è necessario specificare un nome per la regola, quindi fare clic su Fine pulsante.
8. Quindi ritorna al file Regole e avvisi finestra di dialogo, puoi vedere la regola che hai creato elencata all'interno, fai clic su OK pulsante per completare tutte le impostazioni.
D'ora in poi, quando viene ricevuta un'e-mail dalla persona specificata, i file allegati verranno stampati automaticamente.
Articoli correlati
Stampa solo allegati da un'e-mail o da e-mail selezionate in Outlook
In Outlook, puoi stampare le e-mail, ma hai stampato gli allegati solo da un'e-mail o da e-mail selezionate in Outlook? Questo articolo introduce i trucchi per risolvere questo lavoro.
Stampa solo l'intestazione del messaggio di un'e-mail in Outlook
Quando si stampa un'e-mail in Outlook, verranno stampate sia l'intestazione del messaggio che il corpo del messaggio nell'e-mail. Tuttavia, in alcuni casi speciali, potrebbe essere sufficiente stampare l'intestazione del messaggio con l'oggetto, il mittente, i destinatari, ecc. Questo articolo introdurrà due soluzioni per farlo.
Stampa un calendario in un intervallo di date specifico/personalizzato in Outlook
Normalmente, quando si stampa un calendario nella visualizzazione Mese in Outlook, verrà selezionato automaticamente il mese contenente la data attualmente selezionata. Tuttavia, potrebbe essere necessario stampare il calendario all'interno di un intervallo di date personalizzato, ad esempio 3 mesi, metà dell'anno, ecc. Questo articolo introdurrà la soluzione per te.
Stampa un contatto con un'immagine in Outlook
Normalmente, l'immagine di un contatto non verrà stampata durante la stampa del contatto in Outlook. Ma a volte sarà più impressionante stampare un contatto con la sua immagine. Questo articolo introdurrà alcune soluzioni alternative per farlo.
Stampa una selezione di un'e-mail in Outlook
Se hai ricevuto un messaggio e-mail e hai scoperto che è necessario stampare una selezione del contenuto dell'e-mail invece di stampare l'intero messaggio, cosa faresti? In realtà, Outlook può aiutarti a realizzare questa operazione con l'aiuto dei browser Internet, come Firefox e Internet Explorer. Qui prenderò ad esempio i browser Internet. Si prega di guardare i seguenti tutorial.
I migliori strumenti per la produttività in ufficio
Kutools for Outlook - Oltre 100 potenti funzionalità per potenziare il tuo Outlook
🤖 Assistente di posta AI: E-mail istantanee professionali con la magia dell'intelligenza artificiale: risposte geniali con un solo clic, tono perfetto, padronanza multilingue. Trasforma l'e-mail senza sforzo! ...
???? Automazione di posta elettronica: Fuori sede (disponibile per POP e IMAP) / Pianifica l'invio di e-mail / CC/BCC automatico in base alle regole durante l'invio di e-mail / Inoltro automatico (regole avanzate) / Aggiunta automatica di saluto / Suddividi automaticamente le email con più destinatari in singoli messaggi ...
📨 gestione e-mail: Richiama facilmente le email / Blocca le email truffe per soggetto e altri / Elimina email duplicate / Ricerca avanzata / Consolidare cartelle ...
📁 Allegati Pro: Salvataggio in batch / Stacca batch / Comprimi in lotti / Salvataggio automatico / Scollegamento automatico / Comprimi automaticamente ...
🌟 Magia dell'interfaccia: 😊Più emoji carini e fantastici / Aumenta la tua produttività in Outlook con le visualizzazioni a schede / Riduci a icona Outlook invece di chiuderlo ...
👍 Meraviglie con un clic: Rispondi a tutti con gli allegati in arrivo / E-mail anti-phishing / 🕘Mostra il fuso orario del mittente ...
👩🏼🤝👩🏻 Contatti e calendario: Aggiungi in batch contatti dalle email selezionate / Dividere un gruppo di contatti in singoli gruppi / Rimuovi promemoria compleanno ...
Al di sopra Caratteristiche 100 Attendi la tua esplorazione! Clicca qui per scoprire di più.