Come stampare automaticamente gli allegati non appena arrivano le email in Outlook?
Questa guida presenta un metodo efficace per combinare uno script VBA con una regola di Outlook, consentendo la stampa automatica degli allegati delle email selezionate non appena arrivano nella casella di posta.
Stampa automaticamente gli allegati all'arrivo di determinate email
Immagina di voler stampare automaticamente gli allegati delle email in arrivo da un mittente specifico. Ecco come puoi procedere per ottenere il risultato desiderato.
Passo 1: Crea uno script in Outlook
Innanzitutto, devi creare uno script VBA in Outlook.
1. Avvia Outlook e premi contemporaneamente i tasti Alt+F11 per aprire la finestra Microsoft Visual Basic for Applications.
2. Nella finestra Microsoft Visual Basic for Applications, fai doppio clic su Project1 > Oggetti Microsoft Outlook > ThisOutlookSession per aprire la finestra ThisOutlookSession (Codice), quindi copia il codice seguente in questa finestra.

Codice VBA 1: Stampa automaticamente gli allegati (tutti i tipi di allegati) all'arrivo delle email
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 email. Se desideri stampare solo un tipo specifico di allegato, ad esempio file PDF, applica il seguente codice VBA.
Codice VBA 2: Stampa automaticamente il tipo specifico di allegati all'arrivo delle email
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. Prosegui e fai clic su Strumenti > Riferimenti. Nella finestra di dialogo Riferimenti – Project1 visualizzata, seleziona la casella Microsoft Scripting Runtime, quindi fai clic sul pulsante OK.

4. Salva il codice e premi i tasti Alt+Q per chiudere la finestra Microsoft Visual Basic for Applications.
Nota: Assicurati che l'opzione Abilita tutte le macro sia attivata in Outlook. Puoi verificare questa impostazione seguendo i passaggi indicati di seguito.

Passo 2: Crea una regola per utilizzare lo script
Dopo aver aggiunto lo script VBA in Outlook, crea una regola per utilizzarlo in base a determinate condizioni.
1. Vai alla scheda Home, fai clic su Regole > Gestisci regole e avvisi.

2. Nella finestra di dialogo Regole e avvisi, fai clic sul pulsante Nuova regola per creare una regola.
Suggerimenti: Se hai aggiunto più account email al tuo Outlook, specifica un account nel menu a discesa Applica le modifiche a questa cartella, indicando la cartella in cui desideri applicare la regola. In caso contrario, verrà applicata alla posta in arrivo dell’account attualmente selezionato.

3. Nella prima finestra di dialogo Guida per le regole, seleziona Applica regola ai messaggi ricevuti nel riquadro Passo 1, quindi fai clic su Avanti.

4. Nella seconda finestra di dialogo Guida per le regole, devi:

5. Nella terza finestra di dialogo Guida per le regole, devi procedere come segue.

Suggerimento: Se l’opzione «Esegui uno script» non è visibile nella tua finestra Guida per le regole, puoi renderla nuovamente disponibile seguendo il metodo descritto in questo articolo: ripristina l'opzione mancante Esegui uno script nelle regole di Outlook.
6. Viene quindi visualizzata un'altra finestra Guida per le regole che chiede se applicare eccezioni. Se necessario, seleziona le eccezioni; in caso contrario, fai clic sul pulsante Avanti senza effettuare alcuna selezione.

7. Nell'ultima finestra Guida per le regole, assegna un nome alla regola, quindi fai clic sul pulsante Fine.

8. Viene quindi visualizzata nuovamente la finestra di dialogo Regole e avvisi; puoi vedere la regola appena creata nell'elenco. Fai clic sul pulsante OK per completare l'impostazione.

Da ora in poi, ogni volta che arriva un’e-mail da una persona specificata, l’allegato verrà stampato automaticamente.
Articoli correlati
Stampa solo gli allegati da un'email o da email selezionate in Outlook
In Outlook puoi stampare le email, ma hai mai provato a stampare soltanto gli allegati di un messaggio o di più messaggi selezionati? Questo articolo ti svela alcuni trucchi efficaci per farlo!
Stampa solo l'intestazione di un messaggio email in Outlook
Quando stampi un'email in Outlook, vengono inclusi sia l'intestazione che il corpo del messaggio. Tuttavia, in alcuni casi specifici potresti aver bisogno di stampare esclusivamente l'intestazione — con oggetto, mittente, destinatari e così via. Questo articolo ti presenta due soluzioni efficaci per farlo.
Stampa un calendario in un intervallo di date specifico o personalizzato in Outlook
Di solito, quando stampi un calendario nella vista Mese in Outlook, viene selezionato automaticamente il mese che contiene la data attualmente evidenziata. Tuttavia, potresti aver bisogno di stampare il calendario per un intervallo personalizzato — ad esempio 3 mesi, mezzo anno e oltre. Questo articolo ti mostra come fare.
Stampa un contatto con immagine in Outlook
Di norma, l'immagine di un contatto non viene stampata quando si stampa il contatto in Outlook. A volte, però, potrebbe essere molto più efficace stampare un contatto insieme alla sua foto. In questo articolo ti proponiamo alcune soluzioni alternative per ottenere proprio questo risultato.
Stampa una selezione di un'email in Outlook
Hai ricevuto un messaggio email e devi stampare solo una parte del contenuto, non l’intero messaggio? È più semplice di quanto pensi! Outlook ti permette di farlo con l’aiuto dei browser web, come Firefox e Internet Explorer. In questo esempio utilizzeremo i browser Internet: segui le istruzioni qui sotto.
Migliori strumenti per la produttività in Office
Scopri il nuovissimo Kutools per Outlook con 100+ funzionalità incredibili!Clicca per scaricare ora!
📧Automazione delle email: Risposta automatica (disponibile per POP e IMAP) / Invio email programmato / CC/BCC automatico in base a regole durante l’invio delle email / Inoltro automatico (regola avanzata) / Aggiunta automatica del saluto / Divisione automatica delle email con destinatari multipli in messaggi individuali...
📨Gestione delle email: Richiama Email / Blocca le email truffaldine in base all’oggetto e ad altri criteri / Elimina email duplicate / Ricerca avanzata / Organizza cartelle...
📁Allegati Pro: Salvataggio batch / Distacco batch / Compressione batch / Salvataggio automatico / Distacco automatico / Compressione automatica…
🌟Magia dell’interfaccia: 😊 Più emoji graziose e accattivanti / Ti avvisa all’arrivo di email importanti / Riduci a icona Outlook invece di chiuderlo...
👍Meraviglie con un clic: Rispondi a Tutti con Allegati / Email anti-phishing / 🕘 Mostra il fuso orario – Ora corrente del mittente...
👩🏼🤝👩🏻Contatti e calendario: Aggiungi contatti in blocco dalle email selezionate / Dividi un gruppo di contatti in gruppi individuali / Rimuovi i promemoria dei compleanni...
Usa Kutools nella tua lingua preferita: supporta inglese, spagnolo, tedesco, francese, cinese e oltre 40 altre lingue!


🚀 Download con un clic — Ottieni tutti i componenti aggiuntivi per Office
Fortemente consigliato: Kutools for Office (5-in-1)
Un clic per scaricare cinque programmi di installazionetutti insieme —Kutools per Excel, Outlook, Word, PowerPointe Office Tab Pro.Clicca per scaricare ora!
- ✅Comodità con un solo clic: scarica tutti e cinque i pacchetti di installazione in un’unica azione.
- 🚀Pronto per qualsiasi attività in Office: installa i componenti aggiuntivi che ti servono, esattamente quando ti servono.
- 🧰Inclusi: Kutools per Excel / Kutools per Outlook / Kutools per Word / Office Tab Pro / Kutools for PowerPoint