Skip to main content

Come stampare automaticamente gli allegati quando le email arrivano in Outlook?

Author: Siluvia Last Modified: 2025-08-06

Questa guida dimostra un metodo per combinare uno script VBA e una regola di Outlook per aiutarti a stampare automaticamente gli allegati di determinate email quando arrivano in Outlook.


Stampa automaticamente gli allegati quando arrivano determinate email

Supponendo che tu voglia stampare automaticamente gli allegati delle email in arrivo da un certo mittente. Puoi procedere come segue per farlo.

Passo 1: Crea uno script in Outlook

Innanzitutto, devi creare uno script VBA in Outlook.

1. Avvia il tuo Outlook, 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 > Microsoft Outlook Objects > ThisOutlookSession per aprire la finestra ThisOutlookSession (Codice), quindi copia il seguente codice in questa finestra di codice.

steps of auto printing attachments when emails arrive in Outlook

Codice VBA 1: Stampa automaticamente gli allegati (tutti i tipi di allegati) quando arrivano le 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 vuoi stampare solo un tipo specifico di allegato, come file pdf, applica il seguente codice VBA.

Codice VBA 2: Stampa automaticamente il tipo specifico di allegati quando arrivano le 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:

1. Prima di applicare questo codice VBA per stampare solo il file pdf nelle email in arrivo, devi prima scaricare e installare Adobe Acrobat Reader e impostarlo come lettore pdf predefinito nel tuo computer.
2. Nella riga Case "pdf", cambia "pdf" con l'estensione del file che desideri stampare.

3. Procedi e clicca su Strumenti > Riferimenti. Nella finestra di dialogo Riferimenti – Project1 che appare, seleziona la casella Microsoft Scripting Runtime, quindi clicca sul pulsante OK.

steps of auto printing attachments when emails arrive in Outlook

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 abilitata nel tuo Outlook. Puoi controllare questa opzione seguendo i passaggi mostrati di seguito.

steps of auto printing attachments when emails arrive in Outlook
Passo 2: Crea una regola per utilizzare lo script

Dopo aver aggiunto lo script VBA in Outlook, devi creare una regola per utilizzare lo script in base a determinate condizioni.

1. Vai alla scheda Home, clicca su Regole > Gestisci regole e avvisi.

steps of auto printing attachments when emails arrive in Outlook

2. Nella finestra di dialogo Regole e avvisi, clicca sul pulsante Nuova regola per creare una regola.

Suggerimenti: Se hai aggiunto più account email al tuo Outlook, specifica un account nell'elenco a discesa Applica modifiche a questa cartella dove vuoi applicare la regola. Altrimenti, verrà applicata alla posta in arrivo dell'account email attualmente selezionato.

steps of auto printing attachments when emails arrive in Outlook

3. Nella prima finestra di dialogo Guida per le regole, seleziona Applica regola sui messaggi che ricevo nella casella Passo 1, quindi clicca su Avanti.

steps of auto printing attachments when emails arrive in Outlook

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

4.1) Specifica una o più condizioni nella casella Passo 1 in base alle tue esigenze;
In questo caso, voglio stampare solo gli allegati nelle email in arrivo da un mittente specifico. Qui, seleziono la casella da persone o gruppo pubblico.
4.2) Clicca sul valore sottolineato nella casella Passo 2 per modificare la condizione;
4.3) Clicca su Avanti. Vedi screenshot:
steps of auto printing attachments when emails arrive in Outlook

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

5.1) Nella sezione Passo 1: Seleziona azione(i), seleziona la casella esegui uno script;
5.2) Nella sezione Passo 2, clicca sul testo sottolineato “uno script”;
5.3) Nella finestra di dialogo Seleziona Script che si apre, clicca sul nome del codice VBA che hai aggiunto sopra, quindi clicca su OK;
5.4) Clicca sul pulsante Avanti. Vedi screenshot:
steps of auto printing attachments when emails arrive in Outlook

Suggerimenti: Se l'opzione “esegui uno script” manca nella tua Guida per le regole, puoi visualizzarla seguendo il metodo menzionato in questo articolo: ripristina l'opzione Run A Script mancante nella regola di Outlook.

6. Poi appare un'altra finestra Guida per le regole che chiede eccezioni. Puoi selezionare le eccezioni se necessario, altrimenti, clicca sul pulsante Avanti senza alcuna selezione.

steps of auto printing attachments when emails arrive in Outlook

7. Nell'ultima finestra Guida per le regole, devi specificare un nome per la regola, quindi clicca sul pulsante Fine.

steps of auto printing attachments when emails arrive in Outlook

8. Quindi ritorna alla finestra di dialogo Regole e avvisi, puoi vedere la regola che hai creato elencata all'interno, clicca sul pulsante OK per completare tutte le impostazioni.

steps of auto printing attachments when emails arrive in Outlook

Da ora in poi, quando viene ricevuta un'email dalla persona specificata, i file allegati verranno stampati automaticamente.


Articoli correlati

Stampa solo gli allegati da una email o da email selezionate in Outlook
In Outlook, puoi stampare le email, ma hai mai stampato solo gli allegati da una singola email o da email selezionate in Outlook? Questo articolo introduce alcuni trucchi per risolvere questo problema.

Stampa solo l'intestazione del messaggio di un'email in Outlook
Quando si stampa un'email in Outlook, verranno stampate sia l'intestazione che il corpo del messaggio nell'email. Tuttavia, in alcuni casi speciali, potresti aver bisogno di stampare solo 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 specificato/personalizzato in Outlook
Normalmente, quando si stampa un calendario in vista Mensile in Outlook, verrà automaticamente selezionato il mese contenente la data attualmente selezionata. Ma potresti aver bisogno di stampare il calendario entro un intervallo di date personalizzato, come 3 mesi, metà anno, ecc. Questo articolo introdurrà la soluzione per te.

Stampa un contatto con immagine in Outlook
Normalmente, l’immagine di un contatto non verrà stampata quando si stampa il contatto in Outlook. Ma a volte, sarà più impressionante stampare un contatto con la sua immagine. Questo articolo introdurrà alcuni suggerimenti per farlo.

Stampa una selezione di un'email in Outlook
Se hai ricevuto un messaggio di posta elettronica e hai scoperto che c'è una selezione del contenuto dell'email che deve essere stampata 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ò come esempio i browser Internet. Guarda le seguenti guide.

Altri articoli su "stampa in Outlook"...


I migliori strumenti per la produttività in Office

Ultime novità: Kutools per Outlook lancia la versione gratuita!

Scopri il nuovo Kutools per Outlook con oltre100 funzionalità incredibili! Clicca per scaricare ora!

🤖 Kutools AI : Sfrutta una tecnologia AI avanzata per gestire le email senza sforzo, tra cui rispondere, riassumere, ottimizzare, estendere, tradurre e scrivere email.

📧 Automazione email: Risposta automatica (disponibile per POP e IMAP) / Programmazione invio email / CC/BCC automatico tramite regola durante l’invio dell’email / Inoltro automatico (Regola avanzata) / Aggiungi saluto automaticamente / Suddivisione automatica delle email con più destinatari in email individuali ...

📨 Gestione email: Richiama Email / Blocca email di truffa tramite Oggetto e altro / Elimina Email duplicate / Ricerca Avanzata / Organizza cartelle ...

📁 Allegati Pro: Salvataggio in batch / Distacco in batch / Compressione in batch / Salvataggio automatico / Distacca automaticamente / Auto Comprimi ...

🌟 Magia dell’interfaccia: 😊Più emoji belle e simpatiche / Ti avvisa quando arrivano email importanti / Minimizza Outlook invece di chiuderlo ...

👍 Meraviglie con un clic: Rispondi a Tutti con Allegati / Email Anti-phishing / 🕘Mostra il fuso orario del mittente ...

👩🏼‍🤝‍👩🏻 Contatti e Calendario: Aggiunta massiva dei contatti dalle email selezionate / Dividi un Gruppo di Contatti in gruppi individuali / Rimuovi promemoria di compleanno ...

Usa Kutools nella lingua che preferisci: supporta Inglese, Spagnolo, Tedesco, Francese, Cinese e oltre40 altre lingue!

Sblocca istantaneamente Kutools per Outlook con un solo clic. Non aspettare, scarica ora e aumenta la tua efficienza!

kutools for outlook features1 kutools for outlook features2