Outlook Banter

Outlook Banter (http://www.outlookbanter.com/)
-   Outlook and VBA (http://www.outlookbanter.com/outlook-vba/)
-   -   Way to add prompt to this macro? (http://www.outlookbanter.com/outlook-vba/63316-way-add-prompt-macro.html)

StargateFan December 16th 07 05:54 PM

Way to add prompt to this macro?
 
Hi! I was given a fantastic script on this board some time back which
I use all the time. It sorts the folders in the main Personal
Folders. This is the script he

************************************************** **************
Private Sub Application_Startup()
ExpandAllFolders
End Sub

Private Sub ExpandAllFolders()
On Error Resume Next
Dim Ns As Outlook.NameSpace
Dim Folders As Outlook.Folders
Dim CurrF As Outlook.MAPIFolder
Dim F As Outlook.MAPIFolder
Dim ExpandDefaultStoreOnly As Boolean

ExpandDefaultStoreOnly = True

Set Ns = Application.GetNamespace("Mapi")
Set CurrF = Application.ActiveExplorer.CurrentFolder

If ExpandDefaultStoreOnly = True Then
Set F = Ns.GetDefaultFolder(olFolderInbox)
Set F = F.Parent
Set Folders = F.Folders
LoopFolders Folders, True

Else
LoopFolders Ns.Folders, True
End If

DoEvents
Set Application.ActiveExplorer.CurrentFolder = CurrF
End Sub
Private Sub LoopFolders(Folders As Outlook.Folders, _
ByVal bRecursive As Boolean _
)
Dim F As Outlook.MAPIFolder

For Each F In Folders
Set Application.ActiveExplorer.CurrentFolder = F
DoEvents

If bRecursive Then
If F.Folders.Count Then
LoopFolders F.Folders, bRecursive
End If
End If
Next
End Sub
************************************************** **************

The thing is that the process takes a bit of time, which is absolutely
no problem. But a lot of times, the folders don't need to be expanded
each and every time O2K is launched and/or I need to get in
immediately.

How can we add a prompt to run this macro rather than having it run
automatically when all macros are enabled, pls?

Thank you! :oD

Sue Mosher [MVP-Outlook] December 16th 07 08:29 PM

Way to add prompt to this macro?
 
Use a MsgBox statement:

Private Sub Application_Startup()
If MsgBox("Do you want to expand?", vbYesNo + vbQuestion, "Expand all?") Then
ExpandAllFolders
End If
End Sub

--
Sue Mosher, Outlook MVP
Author of Microsoft Outlook 2007 Programming:
Jumpstart for Power Users and Administrators
http://www.outlookcode.com/article.aspx?id=54


"StargateFan" wrote in message ...
Hi! I was given a fantastic script on this board some time back which
I use all the time. It sorts the folders in the main Personal
Folders. This is the script he

************************************************** **************
Private Sub Application_Startup()
ExpandAllFolders
End Sub

Private Sub ExpandAllFolders()
On Error Resume Next
Dim Ns As Outlook.NameSpace
Dim Folders As Outlook.Folders
Dim CurrF As Outlook.MAPIFolder
Dim F As Outlook.MAPIFolder
Dim ExpandDefaultStoreOnly As Boolean

ExpandDefaultStoreOnly = True

Set Ns = Application.GetNamespace("Mapi")
Set CurrF = Application.ActiveExplorer.CurrentFolder

If ExpandDefaultStoreOnly = True Then
Set F = Ns.GetDefaultFolder(olFolderInbox)
Set F = F.Parent
Set Folders = F.Folders
LoopFolders Folders, True

Else
LoopFolders Ns.Folders, True
End If

DoEvents
Set Application.ActiveExplorer.CurrentFolder = CurrF
End Sub
Private Sub LoopFolders(Folders As Outlook.Folders, _
ByVal bRecursive As Boolean _
)
Dim F As Outlook.MAPIFolder

For Each F In Folders
Set Application.ActiveExplorer.CurrentFolder = F
DoEvents

If bRecursive Then
If F.Folders.Count Then
LoopFolders F.Folders, bRecursive
End If
End If
Next
End Sub
************************************************** **************

The thing is that the process takes a bit of time, which is absolutely
no problem. But a lot of times, the folders don't need to be expanded
each and every time O2K is launched and/or I need to get in
immediately.

How can we add a prompt to run this macro rather than having it run
automatically when all macros are enabled, pls?

Thank you! :oD


StargateFan December 16th 07 09:44 PM

Way to add prompt to this macro?
 
On Sun, 16 Dec 2007 14:29:33 -0500, "Sue Mosher [MVP-Outlook]"
wrote:

Use a MsgBox statement:

Private Sub Application_Startup()
If MsgBox("Do you want to expand?", vbYesNo + vbQuestion, "Expand all?") Then
ExpandAllFolders
End If
End Sub



WOW!! That is so kewl!! I just changed the text a bit to this:
"Private Sub Application_Startup()
If MsgBox("Do you want to run the macro to expand all the
folders... ?", vbYesNo + vbQuestion, "Expand all?") Then
ExpandAllFolders
End If
End Sub"

and then it ran the macro at triple speed! Pretty kewl.

Is there a "sleep" function in vb? I'd like to add a second or 2 or
sleep before the message box comes up. This box pops up a bit too
quickly after one presses okay to enable macros.

Thanks for this! :oD

--
Sue Mosher, Outlook MVP
Author of Microsoft Outlook 2007 Programming:
Jumpstart for Power Users and Administrators
http://www.outlookcode.com/article.aspx?id=54


"StargateFan" wrote in message ...
Hi! I was given a fantastic script on this board some time back which
I use all the time. It sorts the folders in the main Personal
Folders. This is the script he

************************************************** **************
Private Sub Application_Startup()
ExpandAllFolders
End Sub

Private Sub ExpandAllFolders()
On Error Resume Next
Dim Ns As Outlook.NameSpace
Dim Folders As Outlook.Folders
Dim CurrF As Outlook.MAPIFolder
Dim F As Outlook.MAPIFolder
Dim ExpandDefaultStoreOnly As Boolean

ExpandDefaultStoreOnly = True

Set Ns = Application.GetNamespace("Mapi")
Set CurrF = Application.ActiveExplorer.CurrentFolder

If ExpandDefaultStoreOnly = True Then
Set F = Ns.GetDefaultFolder(olFolderInbox)
Set F = F.Parent
Set Folders = F.Folders
LoopFolders Folders, True

Else
LoopFolders Ns.Folders, True
End If

DoEvents
Set Application.ActiveExplorer.CurrentFolder = CurrF
End Sub
Private Sub LoopFolders(Folders As Outlook.Folders, _
ByVal bRecursive As Boolean _
)
Dim F As Outlook.MAPIFolder

For Each F In Folders
Set Application.ActiveExplorer.CurrentFolder = F
DoEvents

If bRecursive Then
If F.Folders.Count Then
LoopFolders F.Folders, bRecursive
End If
End If
Next
End Sub
************************************************** **************

The thing is that the process takes a bit of time, which is absolutely
no problem. But a lot of times, the folders don't need to be expanded
each and every time O2K is launched and/or I need to get in
immediately.

How can we add a prompt to run this macro rather than having it run
automatically when all macros are enabled, pls?

Thank you! :oD



StargateFan December 16th 07 10:05 PM

Way to add prompt to this macro?
 
On Sun, 16 Dec 2007 15:44:49 -0500, StargateFan
wrote:

On Sun, 16 Dec 2007 14:29:33 -0500, "Sue Mosher [MVP-Outlook]"
wrote:

Use a MsgBox statement:

Private Sub Application_Startup()
If MsgBox("Do you want to expand?", vbYesNo + vbQuestion, "Expand all?") Then
ExpandAllFolders
End If
End Sub



WOW!! That is so kewl!! I just changed the text a bit to this:
"Private Sub Application_Startup()
If MsgBox("Do you want to run the macro to expand all the
folders... ?", vbYesNo + vbQuestion, "Expand all?") Then
ExpandAllFolders
End If
End Sub"

and then it ran the macro at triple speed! Pretty kewl.

Is there a "sleep" function in vb? I'd like to add a second or 2 or
sleep before the message box comes up. This box pops up a bit too
quickly after one presses okay to enable macros.

Thanks for this! :oD


[snip]

Oops, didn't check it out thoroughly. The macro still runs even when
we press NO!

:o(

How come? g

Thanks. :oD


Sue Mosher [MVP-Outlook] December 16th 07 11:55 PM

Way to add prompt to this macro?
 
Because I stupidly forgot the text for the MsgBox function's return value:

strMsg = "Do you want to run the macro to expand all the folders... ?"
If MsgBox(strMsg, vbYesNo + vbQuestion, "Expand all?") = vbYes Then
ExpandAllFolders
End If

--
Sue Mosher, Outlook MVP
Author of Microsoft Outlook 2007 Programming:
Jumpstart for Power Users and Administrators
http://www.outlookcode.com/article.aspx?id=54


"StargateFan" wrote in message ...
On Sun, 16 Dec 2007 15:44:49 -0500, StargateFan
wrote:

On Sun, 16 Dec 2007 14:29:33 -0500, "Sue Mosher [MVP-Outlook]"
wrote:

Use a MsgBox statement:

Private Sub Application_Startup()
If MsgBox("Do you want to expand?", vbYesNo + vbQuestion, "Expand all?") Then
ExpandAllFolders
End If
End Sub



WOW!! That is so kewl!! I just changed the text a bit to this:
"Private Sub Application_Startup()
If MsgBox("Do you want to run the macro to expand all the
folders... ?", vbYesNo + vbQuestion, "Expand all?") Then
ExpandAllFolders
End If
End Sub"

and then it ran the macro at triple speed! Pretty kewl.

Is there a "sleep" function in vb? I'd like to add a second or 2 or
sleep before the message box comes up. This box pops up a bit too
quickly after one presses okay to enable macros.

Thanks for this! :oD


[snip]

Oops, didn't check it out thoroughly. The macro still runs even when
we press NO!

:o(

How come? g

Thanks. :oD


StargateFan December 17th 07 01:53 PM

Way to add prompt to this macro?
 
On Sun, 16 Dec 2007 17:55:15 -0500, "Sue Mosher [MVP-Outlook]"
wrote:

Because I stupidly forgot the text for the MsgBox function's return value:

strMsg = "Do you want to run the macro to expand all the folders... ?"
If MsgBox(strMsg, vbYesNo + vbQuestion, "Expand all?") = vbYes Then
ExpandAllFolders
End If


lol Thank you! Works just perfectly now. Next time a colleague
comes around just as I've opened Outlook, I can press "no" before he
asks me something that requires an email response and we don't need to
wait for the macro to go through g. (That literally happened to me
a couple of weeks ago; freaks people out, this macro does lol. I
should have just chosen disable then re-opened O2K after, but didn't
think of that on the spur of the moment ... g).

Also, what's neat is that I can see the folders and they remain
expanded a few times Outlook opens, so it needs the macro run only
every few launches. Pretty neat O2K behaviour not to need to do it
each time.



All times are GMT +1. The time now is 07:51 AM.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 2.4.0
Copyright ©2004-2006 OutlookBanter.com