Solved

vba to toggle send/receive in Outlook 2013

Posted on 2013-10-22
4
1,448 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

Question has a verified solution.

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

This article lists the top 5 free OST to PST Converter Tools. These tools save a lot of time for users when they want to convert OST to PST after their exchange server is no longer available or some other critical issue with exchange server or impor…
You need to know the location of the Office templates folder, so that when you create new templates, they are saved to that location, and thus are available for selection when creating new documents.  The steps to find the Templates folder path are …
CodeTwo Sync for iCloud (http://www.codetwo.com/sync-for-icloud?sts=6554) automatically synchronizes your Outlook 2016, 2013, 2010 or 2007 folders with iCloud folders available via iCloud Control Panel. This lets you automatically sync them with…
There are cases when e.g. an IT administrator wants to have full access and view into selected mailboxes on Exchange server, directly from his own email account in Outlook or Outlook Web Access. This proves useful when for example administrator want…

623 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