Avatar billede JacobDal Nybegynder
11. oktober 2011 - 14:45 Der er 1 kommentar

VBA kode til Outlook

Jeg har en kode til automatisk at printe vedhæftede .PDF filer fra en mail. Jeg har dog et problem med at den springer nogle filer over når man sætter den til at printe alle filerne ud.

Jeg har en makro til at flytte mails med pdf vedhæftelser til en ny mappe i outlook, og har så lavet en knap til at køre makroen, i netop den mappe, hvorefter den så efter print flytter det til en arkivmappe. Den hopper i gennemsnit ca. hver tredje mail over, hvilket gør tidsbesparelsen ved scriptet mindre.

Mit eget gæt er at problemet kan løses hvis man sætter den til at "vente" efter at have printet en pdf fil, da det eventuelt er Adobe som ikke kan følge med. Men dette ved jeg ikke hvordan jeg får den til.

Der er tale om Outlook 2007 der kører på en windows XP maskine.

Har i nogen ideer til løsning af problemet?

Sub Runascriptruleroutine(Item As MailItem)
Call PrintAttachments
End Sub
Public Sub PrintAttachments()
  Dim Inbox As MAPIFolder
  Dim Item As MailItem
  Dim Atmt As Attachment
  Dim FileName As String
  Dim i As Integer
 
  Set Inbox = GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Parent.Folders.Item("Printmappe")
  Set Printet = GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Parent.Folders.Item("Printet")

  For Each Item In Inbox.Items
    For Each Atmt In Item.Attachments

    FileName = "C:\Temp\" & Atmt.FileName
    Atmt.SaveAsFile FileName

  Shell """C:\Programmer\Adobe\Reader 10.0\Reader\acrord32.exe"" /h /p """ + FileName + """", vbHide

      Item.Move Printet

  Next

  Next
  Set Inbox = Nothing
End Sub
Avatar billede anlu Nybegynder
21. oktober 2011 - 23:31 #1
Hvis du blot vil have den til at vente et fast tidsrum, kan du benytte sleep-funktionen - du skal blot erklære denne i starten af dit modul. Her med et trivi-eksempel:

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Public Sub TestSleep()
    Dim start As Date
   
    MsgBox "Start"
    start = Now
    Sleep 8000 ' venter 8 sekunder
    MsgBox "Start : " & Format(start, "hh:nn:ss") & vbCrLf & "Slut: " & Format(Now, "hh:nn:ss")
End Sub
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
Kategori
Kurser inden for grundlæggende programmering

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