Solved

vba to toggle send/receive in Outlook 2013

Posted on 2013-10-22
4
1,411 Views
Last Modified: 2013-10-28
In outlook 2010 I could toggle send/receive with this code

Application.ActiveExplorer().CommandBars("Standard").Controls("Send/Re&ceive").Controls("Send/Recei&ve Settings").Controls("&Disable Scheduled Send/Receive").Execute.

So how can I do the same thing with Outlook 2013?

rberke

P.S.  here is the full vba that worked in outlook 2010 and earlier.
Sub toggleScheduledSendReceive()
' this only works in Outlook 2010 and earlier

' the Line1 code must run BEFORE the Line2 .execute command
' if Line1 comes after the .execute it will randomly return the control's PREVIOUS value rather than the TOGGLED value.
        ' this because the .execute runs asynchrously.
       '  Vba starts the .execute, then resumes at line2B 
       '  even though the toggle may or may not have finished.

On Error GoTo err_routine

Dim x

Dim OutlookSendReceiveWasPreviouslyDisabled As Boolean
Line1: OutlookSendReceiveWasPreviouslyDisabled = Application.ActiveExplorer().CommandBars("Standard").Controls("Send/Re&ceive").Controls("Send/Recei&ve Settings").Controls("&Disable Scheduled Send/Receive").State

Line2:
Application.ActiveExplorer().CommandBars("Standard").Controls("Send/Re&ceive").Controls("Send/Recei&ve Settings").Controls("&Disable Scheduled Send/Receive").Execute
Line2b:

If OutlookSendReceiveWasPreviouslyDisabled Then
      MsgBox "Send/Receive schedule has been Enabled."
Else
     msgBox "Send/Receive and Server Import schedules have been Disabled"
End If

exit_sub:
    Exit Sub
err_routine:
msgBox Error$
Resume exit_sub

Open in new window

0
Comment
Question by:rberke
  • 3
4 Comments
 
LVL 76

Expert Comment

by:David Lee
ID: 39593738
Hi, rberke.

Microsoft effectively did away with commandbars in Outlook 2013.  That's why the code you posted doesn't work.  The simplest solution is to use the following SendKeys command to toggle the setting.

    SendKeys "%SGD"
0
 
LVL 5

Author Comment

by:rberke
ID: 39594398
I avoid sendkeys whenever possible.

I would far prefer a solution which uses the object model.

Bob
0
 
LVL 5

Accepted Solution

by:
rberke earned 0 total points
ID: 39595173
I figured it out myself. My solution is in 3A below.


In Outlook 2013, I can now easily execute most ribbon commands from vba.

First, I find the name of the command as follows:

1) right click QAT>Customize the Ribbon > choose commands from > all Commands
2) hover mouse over the desired command and the command name appears.


3A) I then code the vba as follows

    Application.ActiveExplorer.CommandBars.ExecuteMso ("DisableAutoSendReceive")

Please note, the name is slightly misleading, a better name would have been ToggleAutoSendReceive

3B) If an arbitrary command applies to an open message, I would have coded it slightly differently.  For instance:

     Application.ActiveInspector.CommandBars.ExecuteMso ("RemoveAttach")

rberke

p.s. The rumor is that commandbars may be eliminated sometime in the future, but Outlook 2013 is not going to be replaced for at least a couple more years.
0
 
LVL 5

Author Closing Comment

by:rberke
ID: 39605112
the sendkeys solution provided by the expert might have worked, but I don't like sendkeys.

I came up with my own solution which is much more general.
0

Featured Post

Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Outlook Free & Paid Tools
Is your Office 365 signature not working the way you want it to? Are signature updates taking up too much of your time? Let's run through the most common problems that an IT administrator can encounter when dealing with Office 365 email signatures.
This Experts Exchange video Micro Tutorial shows how to tell Microsoft Office that a word is NOT spelled correctly. Microsoft Office has a built-in, main dictionary that is shared by Office apps, including Excel, Outlook, PowerPoint, and Word. When …
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…

828 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question