Note: The other languages of the website are Google-translated. Back to English

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 20220920
  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
  Set xFS = New FileSystemObject
  xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
  xTempFolder = xTempFolder & "\ATMP" & Format(Now, "yyyymmddhhmmss")
  MkDir (xTempFolder)
  'Set Item = Application.ActiveExplorer.Selection.Item(1)
  Set xShell = CreateObject("Shell.Application")
  Set xFolder = xShell.NameSpace(0)
  For Each xAtt In Item.Attachments
    xFileName = xTempFolder & "\" & xAtt.FileName
    xAtt.SaveAsFile (xFileName)
    Set xFolderItem = xFolder.ParseName(xFileName)
    xFolderItem.InvokeVerbEx ("print")
  Next xAtt
'xFS.DeleteFolder (xTempFolder)
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

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 20220920
  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
  Set xFS = New FileSystemObject
  xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
  xTempFolder = xTempFolder & "\ATMP" & Format(Now, "yyyymmddhhmmss")
  MkDir (xTempFolder)
  'Set Item = Application.ActiveExplorer.Selection.Item(1)
  Set xShell = CreateObject("Shell.Application")
  Set xFolder = xShell.NameSpace(0)
  For Each xAtt In Item.Attachments
    xFileName = xAtt.FileName
    xFileType = LCase$(Right$(xFileName, VBA.Len(xFileName) - VBA.InStrRev(xFileName, ".")))
    xFileName = xTempFolder & "\" & xFileName
    xAtt.SaveAsFile (xFileName)
    Select Case xFileType
      Case "pdf"   'change "pdf" to the file extension you want to print
        Set xFolderItem = xFolder.ParseName(xFileName)
        xFolderItem.InvokeVerbEx ("print")
    End Select
  Next xAtt
'xFS.DeleteFolder (xTempFolder)
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

Note:

1. Prima di applicare questo codice VBA per stampare solo il file pdf nelle e-mail in arrivo, devi prima scaricare e installare Adobe Acrobat Reader e impostalo come lettore pdf predefinito nel tuo computer.
2. In linea Caso "pdf", per favore cambia "PDF" all'estensione del file che si desidera stampare.

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:

4.1) Specificare una o più condizioni nella Passo 1 scatola secondo le vostre esigenze;
In questo caso, voglio stampare solo gli allegati nelle e-mail in arrivo da un mittente specificato. Qui, controllo il da persone o gruppi pubblici scatola.
4.2) Fare clic sul valore sottolineato in Passo 2 casella per modificare la condizione;
4.3) Fare clic Avanti. Visualizza gli screenshot:

5. Nella terza Creazione guidata regole finestra di dialogo, è necessario configurare come segue.

5.1) nel Passaggio 1: seleziona la sezione delle azioni, controlla il eseguire uno script scatola;
5.2) nel Passo 2 sezione, fare clic sul testo sottolineato “uno script”;
5.3) In apertura Seleziona Script finestra di dialogo, fare clic sul nome del codice VBA aggiunto in precedenza, quindi fare clic OK;
5.4) Fare clic su Successiva pulsante. Vedi screenshot:

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 Successiva 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.

Altri articoli sulla "stampa in Outlook"...


Kutools for Outlook: porta 100 funzionalità avanzate in Outlook e semplifica notevolmente il lavoro!

  • Auto CC / BCC dalle regole durante l'invio di e-mail; Avanzamento automatico Email multiple personalizzate; Risposta automatica senza server di scambio e più funzioni automatiche ...
  • Avviso BCC - mostra il messaggio quando provi a rispondere a tutti se il tuo indirizzo e-mail è nell'elenco BCC; Ricorda quando mancano allegatie altre funzioni di promemoria ...
  • Rispondi (tutti) con tutti gli allegati nella conversazione di posta; Rispondi a molte email in secondi; Aggiunta automatica di saluto quando rispondi; Aggiungi la data all'oggetto ...
  • Strumenti per gli allegati: gestisci tutti gli allegati in tutti i messaggi, Scollegamento automatico, Comprimi tutto, Rinomina tutto, Salva tutto... Rapporto rapido, Conta le email selezionate...
  • E-mail spazzatura potenti per abitudine; Rimuovi messaggi e contatti duplicati... Consentono di fare in modo più intelligente, veloce e migliore in Outlook.
girato kutools outlook scheda kutools 1180x121
girato kutools outlook kutools plus tab 1180x121
 
Commenti (12)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
ciao

j ai suivi a la lettre votre methode pour imprimez automatiquement lesz pieces jointess

activez les macros mais il nya pass de macro

donc can ne fonctionne pas ou il me manque un element

merci de me dire svp
Questo commento è stato fatto dal moderatore sul sito
Ciao,
Dopo aver abilitato il Abilita tutte le macro opzione nella finestra Centro protezione, è necessario riavviare Outlook per attivare il codice.
Questo commento è stato fatto dal moderatore sul sito
Quando eseguo il modulo manualmente, viene visualizzata una finestra di dialogo della stampante. C'è un modo per stampare un'e-mail senza che venga visualizzata la finestra di dialogo?
Questo commento è stato fatto dal moderatore sul sito
Ciao Logan,
Il codice apre semplicemente l'allegato per leggere i dati per la stampa, quindi chiude automaticamente l'allegato. La finestra di dialogo della stampante non viene visualizzata quando si esegue il codice. Ti dispiacerebbe fornire uno screenshot della finestra di dialogo della stampante? Ci dispiace per l'inconvenienza.
Questo commento è stato fatto dal moderatore sul sito
Bonjour moi j'ai un petit soucie lorsque j'ai fait et refait les étapes mais lorsque je créer ma règle je n'Ai pas l'option esegui uno script.
Questo commento è stato fatto dal moderatore sul sito
Ciao Stéphane,
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.
Questo commento è stato fatto dal moderatore sul sito
Bonjour question pour vous j'ai fait les étapes pour cela mais dans les règle de message de mon outlook je ne voit pas que je peux utilisé un script
Questo commento è stato fatto dal moderatore sul sito
Ciao STEFANO CADORETTE,
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.
Questo commento è stato fatto dal moderatore sul sito
Ciao, gentilmente ho bisogno di aiuto, non riesco a integrare lo script per la stampa solo del pdf.
Ho attivato tutto, il primo script per la stampa generica funziona perfettamente (o quasi: la stampa degli allegati pdf una volta stampati acrobat reader rimane aperto in background), ma lo script specifico per pdf non funziona. Grazie per aver pubblicato gli script e per qualsiasi aiuto.
Buongiorno
Questo commento è stato fatto dal moderatore sul sito
Ciao Marco041,
C'era qualcosa di sbagliato nel codice ed è stato aggiornato. Per favore, provalo.
Note:: non abbiamo modo di impedire l'apertura di Acrobat Reader perché dobbiamo utilizzarlo per aprire il documento pdf per il prossimo lavoro di stampa.
Grazie per il suggerimento.
Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20220920
  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
  Set xFS = New FileSystemObject
  xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
  xTempFolder = xTempFolder & "\ATMP" & Format(Now, "yyyymmddhhmmss")
  MkDir (xTempFolder)
  'Set Item = Application.ActiveExplorer.Selection.Item(1)
  Set xShell = CreateObject("Shell.Application")
  Set xFolder = xShell.NameSpace(0)
  For Each xAtt In Item.Attachments
    xFileName = xAtt.FileName
    xFileType = LCase$(Right$(xFileName, VBA.Len(xFileName) - VBA.InStrRev(xFileName, ".")))
    xFileName = xTempFolder & "\" & xFileName
    xAtt.SaveAsFile (xFileName)
    Select Case xFileType
      Case "pdf"   'change "pdf" to the file extension you want to print
        Set xFolderItem = xFolder.ParseName(xFileName)
        xFolderItem.InvokeVerbEx ("print")
    End Select
  Next xAtt
'xFS.DeleteFolder (xTempFolder)
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
Questo commento è stato fatto dal moderatore sul sito
È possibile specificare la stampante da utilizzare (non la stampante predefinita del sistema)?
Ho bisogno di stampare 2 tipi di documenti su 2 stampanti diverse....
Grazie per l'aiuto!
Questo commento è stato fatto dal moderatore sul sito
Ciao Simon,
Grazie per il tuo commento. Dopo aver provato con vari metodi, non riesco a farlo funzionare. Ci dispiace per l'inconvenienza.
Non ci sono ancora commenti pubblicati qui
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite