D
david.f.jenkins
I've researched these fora, and am reconciled to the lack of
out-of-the-box PowerPoint functionality for showing a macro "progress"
indicator. Following suggestions found here, I've decided to use a
User Form to display progress messages - this is a simple approach that
will provide the functionality that I need.
However. (Isn't there always a "however"?)
I designed a form with but a single label, which I'll update
periodically. In my test case, I have a loop which runs 2 iterations,
and contains this code:
load MyForm
for i = 1 to 2
MyForm.Label1 = "Iteration " & str(i)
MyForm.show vbModeless
'do some stuff
next i
MyForm.Hide
MyForm.Label1 = "Finished"
MyForm.show vbModal
MyForm.Hide
I have these problems:
1. PPT whines that it can't change the form from modeless to modal. I
got around this by inserting the Hide before setting Label1 to
"Finished" at the end of the loop. Is this the best way to do this?
2. When I use the form as modeless, only the outline and title bar of
the form show; the body ("Iteration nn") is empty and shows a white
background instead of gray. This occurs even when each iteration of
the loop runs for a long time (minutes). I haven't a clue as to what
to do to get around this...
If I make the form Modal, then for each iteration of the loop I can see
an updated version of the form - black text on gray background.
However, I'm required (it's modal, remember) to close the dialog box
before processing of the next loop continues - not an acceptable
behavior for my real-life application.
Any pointers you all can provide to help me though this would be
appreciated - thanks!
out-of-the-box PowerPoint functionality for showing a macro "progress"
indicator. Following suggestions found here, I've decided to use a
User Form to display progress messages - this is a simple approach that
will provide the functionality that I need.
However. (Isn't there always a "however"?)
I designed a form with but a single label, which I'll update
periodically. In my test case, I have a loop which runs 2 iterations,
and contains this code:
load MyForm
for i = 1 to 2
MyForm.Label1 = "Iteration " & str(i)
MyForm.show vbModeless
'do some stuff
next i
MyForm.Hide
MyForm.Label1 = "Finished"
MyForm.show vbModal
MyForm.Hide
I have these problems:
1. PPT whines that it can't change the form from modeless to modal. I
got around this by inserting the Hide before setting Label1 to
"Finished" at the end of the loop. Is this the best way to do this?
2. When I use the form as modeless, only the outline and title bar of
the form show; the body ("Iteration nn") is empty and shows a white
background instead of gray. This occurs even when each iteration of
the loop runs for a long time (minutes). I haven't a clue as to what
to do to get around this...
If I make the form Modal, then for each iteration of the loop I can see
an updated version of the form - black text on gray background.
However, I'm required (it's modal, remember) to close the dialog box
before processing of the next loop continues - not an acceptable
behavior for my real-life application.
Any pointers you all can provide to help me though this would be
appreciated - thanks!