Avatar billede Laila Novice
24. juli 2019 - 08:54 Der er 6 kommentarer

VBA i Outlook 365

Godmorgen. Jeg har et lille problem/spørgsmål.
Jeg vil gerne markere flere mails på samme tid til udskrivning af side 2 i vedhæftede fil, (jeg har fundet koden til at udskrive vedhæftninger). Problemet er, at jeg kun vil have side 2 udskrevet, i alle de vedhæftninger jeg markerer, på samme tid, og ikke selve mailen.
Håber i kan hjælpe. På forhånd tak.
Avatar billede kim1a Ekspert
24. juli 2019 - 09:25 #1
Det ville hjælpe hvis vi ser VBAen :-)

Jeg er sikker på at det måske er en .with sætning som skal have tilføjet en linje, se blandt andet her:
https://docs.microsoft.com/en-us/office/vba/api/excel.sheets.printout
Avatar billede Laila Novice
24. juli 2019 - 09:52 #2
dette er hvad jeg har fundet indtil videre, men som sagt den kan ikke udskrive Side 2 i vedhæftningen

Sub BatchPrintAllAttachmentsInMultipleEmails()
'UpdatebyExtendoffice20180417
Dim xFSO As Scripting.FileSystemObject
Dim xTmpFldPath As String
Dim xSelection As Outlook.Selection
Dim xItem As Object
Dim xMailItem As Outlook.MailItem
Dim xAttachments As Outlook.Attachments
Dim xAttachment As Outlook.Attachment
Dim xShell As Object
Dim xTempFolder As Object
Dim xTempFolderItem As Object
Dim xFilePath As String
On Error Resume Next
Set xFSO = CreateObject("Scripting.FileSystemObject")
xTmpFldPath = xFSO.GetSpecialFolder(2).Path & "\Temp for Attachments"
If xFSO.FolderExists(xTmpFldPath) = False Then
    xFSO.CreateFolder xTmpFldPath
End If
Set xSelection = Outlook.Application.ActiveExplorer.Selection
Set xShell = CreateObject("Shell.Application")
Set xTempFolder = xShell.NameSpace(0)
For Each xItem In xSelection
    If xItem.Class = olMail Then
        Set xMailItem = xItem
        If xMailItem.Attachments.Count = 0 Then Exit Sub
        Set xAttachments = xMailItem.Attachments
        For Each xAttachment In xAttachments
            xFilePath = xTmpFldPath & "\" & xAttachment.FileName
            xAttachment.SaveAsFile (xFilePath)
            Set xTempFolderItem = xTempFolder.ParseName(xFilePath)
            xTempFolderItem.InvokeVerbEx ("print")
        Next
    End If
Next

'If xFSO.FolderExists(xTmpFldPath) Then
'    xFSO.DeleteFolder xTmpFldPath, True
'End If
End Sub
Avatar billede kim1a Ekspert
24. juli 2019 - 10:10 #3
Din VBA gemmer vedhæftningen i en temp folder og printer dem derfra. Det er muligvis den sidste linje:
xTempFolderItem.InvokeVerbEx ("print")
du skal lave lidt omkring på, men jeg kender ikke InvokeVerbEx koden. Så det er svært at overveje om du kan gøre noget for at printe. Så vidt jeg kan læse mig til så er den blot en form for program eksekvering der svarer til at trykke ctrl+p. Kommer der dialogboks op med print - eller printer den bare?

Jeg ville nok overveje at bruge en anden form for print, men hvilken type filer er vedhæftningerne? Måske det giver mening at samle dem som en pdf eller måske bare åbne dem enkeltvis og printe side 2.
Avatar billede Laila Novice
24. juli 2019 - 10:20 #4
Det er som oftest pdf´er, og der er mange mails der skal åbnes og side 2 printes, derfor denne tanke.

Der kommer en dialogbox op med print når jeg trykker F5
Avatar billede kim1a Ekspert
24. juli 2019 - 10:42 #5
Jeg beklager jeg ikke kan være til mere hjælp :-) Jeg håber nogle andre har mere styr på den form for print.
Avatar billede Laila Novice
24. juli 2019 - 10:51 #6
tak for indsatsen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester