Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Outlook Wait a few seconds then execute

Tags:

vba

outlook

I have a simple VBA code in Outlook 2010 which prints any incoming emails automatically.

This script is set to run each time an email comes in through a rule.

Here is the code:

Sub printradu(Item As Outlook.MailItem)
       MessageAndAttachmentProcessor Item, True
End Sub

How can i make this script wait 10 seconds and then execute it. I need something like this:

Sub printradu(Item As Outlook.MailItem)
       'Wait 10 seconds then execute the code below:
       MessageAndAttachmentProcessor Item, True
End Sub
like image 310
RaduS Avatar asked Oct 05 '13 09:10

RaduS


2 Answers

Try:

Sub printradu(Item As Outlook.MailItem)
    'Wait 10 seconds then execute the code below:
    Application.Wait(Now + TimeValue("0:00:10"))
    MessageAndAttachmentProcessor Item, True
End Sub

Or:

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub printradu(Item As Outlook.MailItem)
    'Wait 10 seconds then execute the code below:
    Sleep(10000)
    MessageAndAttachmentProcessor Item, True
End Sub

Or:

Sub printradu(Item As Outlook.MailItem)
    'Wait 10 seconds then execute the code below:
    Threading.thread.sleep(10000)
    MessageAndAttachmentProcessor Item, True
End Sub
like image 52
Vivek Jain Avatar answered Sep 23 '22 15:09

Vivek Jain


This worked for me in Outlook 2013 VBA (for some reason I had to include "outlook." before the "Application.Wait"):

Outlook.Application.Wait (Now + TimeValue("0:00:5"))
like image 44
Sérgio Backes Avatar answered Sep 26 '22 15:09

Sérgio Backes