J'ai un script VBA qui parcourt les courriels sélectionnés et imprime toutes les pièces jointes au format PDF dans ces courriels.Impression de pièces jointes Outlook sans enregistrer sur le disque dur
Actuellement, le script enregistre les fichiers PDF sur le disque dur, puis les ouvre et les imprime.
Sub BatchPrintAllAttachmentsinMultipleEmails()
Dim objFileSystem As Object
Dim strTempFolder As String
Dim objSelection As Outlook.Selection
Dim objItem As Object
Dim objMail As Outlook.MailItem
Dim objAttachments As Outlook.Attachments
Dim objAttachment As Outlook.Attachment
Dim objShell As Object
Dim objTempFolder As Object
Dim objTempFolderItem As Object
Dim strFilePath As String
Set objFileSystem = CreateObject("Scripting.FileSystemObject")
strTempFolder = objFileSystem.GetSpecialFolder(2).Path & "\Temp for Attachments " & Format(Now, "YYYY-MM-DD_hh-mm-ss")
strTempFolder = "W:\my documents\test"
MkDir (strTempFolder)
Set objSelection = Outlook.Application.ActiveExplorer.Selection
For Each objItem In objSelection
If TypeOf objItem Is MailItem Then
Set objMail = objItem
Set objAttachments = objMail.Attachments
'Save all the attachments in the temp folder
For Each objAttachment In objAttachments
strFilePath = strTempFolder & "\" & objAttachment.FileName
If InStr(strFilePath, ".pdf") <> 0 Or InStr(strFilePath, ".PDF") <> 0 Then
objAttachment.SaveAsFile (strFilePath)
Set objShell = CreateObject("Shell.Application")
Set objTempFolder = objShell.NameSpace(0)
Set objTempFolderItem = objTempFolder.ParseName(strFilePath)
objTempFolderItem.InvokeVerbEx ("print") 'try now
End If
Next objAttachment
End If
Next
End Sub
Je me demande s'il est possible d'exécuter ce code sans enregistrer les fichiers sur le disque dur, à savoir juste les ouvrir de la mémoire en VBA, les imprimer, et ai aucune trace sur le disque dur?
Même les gros logiciels, par exemple Outlook, enregistrent des fichiers PDF sur un lecteur local (dossier temporaire) pour les ouvrir dans un autre programme. Le problème ici est que le lecteur PDF a besoin d'une référence/chemin d'accès au fichier que vous voulez ouvrir. Pourquoi ne pas simplement supprimer le fichier du lecteur après qu'il est imprimé? – MatSnow
J'avais des problèmes pour supprimer le dossier et ses fichiers dans VBA, c'est pourquoi je cherchais une solution sans sauvegarde explicite du fichier sur le disque dur. Cependant, j'ai supprimé le fichier et le dossier au sein de VBA, donc votre conseil a finalement fonctionné pour moi! :) Est-il possible de régler cette question à résolu/répondu? – user2011985