KutoolsforOffice — Un'unica soluzione, cinque potenti strumenti.Ottenere di più con meno sforzo.

Come stampare automaticamente gli allegati non appena arrivano le email in Outlook?

AutoreSiluvia Data di modifica

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.

passaggi per la stampa automatica degli allegati all'arrivo delle email in Outlook

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:

1. Prima di applicare questo codice VBA per stampare solo i file File PDF nelle email in arrivo, devi innanzitutto scaricare e installare Adobe Acrobat Readere impostarlo come lettore PDF predefinito sul tuo computer.
2. Nella riga Case «pdf», modifica «pdf»con l'estensione del file che desideri stampare.

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.

passaggi per la stampa automatica degli allegati all'arrivo delle email 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 attivata in Outlook. Puoi verificare questa impostazione seguendo i passaggi indicati di seguito.

passaggi per la stampa automatica degli allegati all'arrivo delle email in Outlook
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.

passaggi per la stampa automatica degli allegati all'arrivo delle email in Outlook

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.

passaggi per la stampa automatica degli allegati all'arrivo delle email in Outlook

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.

passaggi per la stampa automatica degli allegati all'arrivo delle email in Outlook

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

4,1) Specifica una o più condizioni nel riquadro Passo 1in base alle tue esigenze;
In questo caso, desidero stampare solo gli allegati delle email in arrivo da un mittente specifico. Pertanto, seleziono la casella da persone o gruppo pubblico.
4,2) Fai clic sul valore sottolineato nel riquadro Passo 2per modificare la condizione;
4,3) Fai clic su Avanti.Vedi screenshot:
passaggi per la stampa automatica degli allegati all'arrivo delle email in Outlook

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

5,1) Nella sezione Passaggio 1: Seleziona azione/azioni, seleziona la casella esegui uno script;
5,2) Nella sezione Passaggio 2, fai clic sul testo sottolineato «uno script»;
5,3) Nella finestra di dialogo Seleziona scriptche si apre, fai clic sul nome del codice VBA aggiunto in precedenza, quindi fai clic su OK;
5,4) Fai clic sul pulsante Avanti. Vedi screenshot:
passaggi per la stampa automatica degli allegati all'arrivo delle email in Outlook

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.

passaggi per la stampa automatica degli allegati all'arrivo delle email in Outlook

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

passaggi per la stampa automatica degli allegati all'arrivo delle email in Outlook

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.

passaggi per la stampa automatica degli allegati all'arrivo delle email in Outlook

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.

Altri articoli su «stampare in Outlook»...


Migliori strumenti per la produttività in Office

Scopri il nuovissimo Kutools per Outlook con 100+ funzionalità incredibili!Clicca per scaricare ora!

🤖KUTOOLS AI:Utilizza tecnologia AI avanzata per gestire le email senza sforzo, inclusi rispondere, riassumere, ottimizzare, estendere, tradurre e comporre email.

📧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!

Sblocca istantaneamente Kutools per Outlook con un solo clic! Non aspettare oltre: scaricalo ora e aumenta subito la tua efficienza!

kutools for outlook features1kutools for outlook features2

🚀 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