Solved

Powerpoint Macro

Posted on 2011-02-21
6
808 Views
Last Modified: 2012-05-11
I am making a simple powerpoint training quiz to run in Powerpoint 2007 amd 2010 and I'm almost there -
I've just got a couple of issues with the final 'results' slide.

What I has hoping to do was:

When the slide appears - enter some text into a pre-existing text box along the lines of
TextBox1.TextFrame.TextRange.Text = "your score was " + QScore + "out of "+QMax + ". Thank you"

But I can't seem to be able to do this, or indeed find out how to find the name of and address an existing text box.

I was also hpoing to display a smile or frown (from clipart images), by having the two images on the slide but invisible, and then making the appropriate image visible - but again I can't seem to find out how to address these images, never mind make one of them visible

So in summary
How do I call the sub when the slide appears ?
How can I put the text in the text box ?
How can I make an image visible ?

Thanks in anticipation
0
Comment
Question by:KCTS
  • 2
  • 2
  • 2
6 Comments
 
LVL 59

Accepted Solution

by:
Chris Bottomley earned 250 total points
ID: 34942232
E bah gum tha dunt want much!


How do I call the sub when the slide appears ?
Assuming you are willing to add a button to initialise the event handler then:
See the snippet

How can I put the text in the text box ?
    If ActivePresentation.SlideShowWindow.View.Slide.SlideIndex = 2 Then _
        Application.ActivePresentation.Slides(2).Shapes("TextBox 3").TextFrame.TextRange.Text = Now()

How can I make an image visible ?
    If ActivePresentation.SlideShowWindow.View.Slide.SlideIndex = 3 Then _
        Application.ActivePresentation.Slides(3).Shapes("Picture 3").Visible = True

Chris

'In a normal code module
Dim PPTClassObject As New Class1
Sub startup()
       Set PPTClassObject.PPTEvent = Application
End Sub

'In a new class module named as Class1 otherwise edit to replace!

Option Explicit

Public WithEvents PPTEvent As Application

Private Sub Class_Initialize()

End Sub

Private Sub Class_Terminate()
End Sub



Private Sub PPTEvent_SlideShowNextSlide(ByVal Wn As SlideShowWindow)
    MsgBox "Displaying Slide " & ActivePresentation.SlideShowWindow.View.Slide.SlideIndex
End Sub

Open in new window

0
 
LVL 59

Expert Comment

by:Chris Bottomley
ID: 34942336
As an aside ... to see what the shapes are called, select them on the slide then in the VBE immediate window type:

?activeWindow.Selection.ShapeRange(1).Name

ALso the startup either needs to be triggered manually or fired off a button in the presentation

AUto-open macros are possible but are a subject in their own right for PPT, (see http://skp.mvps.org/autoevents.htm for example)

Chris
0
 
LVL 23

Assisted Solution

by:JSRWilson
JSRWilson earned 250 total points
ID: 34942939
As Chris suggests PPT doesn't EASILY respond to events like Slide Change and you really need to use a class as he details.

Do you really need to do it that way though. When the final question is answered (some sort of button I guess0 just add code to update the final slide BEFORE you get there.

If TextBox1 is a control Text Box (And it shouldn't need to be!)

ActivePresentation.Slides(8).Shapes("Textbox1").OLEFormat.Object.Text = _
"your score was " + QScore + "out of " + QMax + ". Thank you"

Open in new window


If it's a normal shape (Better)

ActivePresentation.Slides(8).Shapes("Textbox1").TextFrame.TextRange = _
"your score was " + QScore + "out of " + QMax + ". Thank you"

Open in new window


For the images

ActivePresentation.Slides(8).Shapes("Picture 1").visible =True 

Open in new window


You don't need code to check the names of shapes from 2007 just open the Selection Pane
0
Ransomware-A Revenue Bonanza for Service Providers

Ransomware – malware that gets on your customers’ computers, encrypts their data, and extorts a hefty ransom for the decryption keys – is a surging new threat.  The purpose of this eBook is to educate the reader about ransomware attacks.

 
LVL 70

Author Comment

by:KCTS
ID: 34943060
Thanks to you both - I'm not at my normal machine right now - I'll give it a go when I get back

... it seemed to be such a straightforward to do ... until I tried to do it !
0
 
LVL 23

Expert Comment

by:JSRWilson
ID: 34943340
Let us know how you get on.

Selection Pane (a truly useful addition in 2007) is HOME tab >>Editing >>Select

You can use it to read the names AND change them to something more useful.
0
 
LVL 70

Author Closing Comment

by:KCTS
ID: 34970150
Thanks to you both - I have sucessfully implimented this and it works :-)

- good tip about the selection pane - I would have never found that.
0

Featured Post

Complete VMware vSphere® ESX(i) & Hyper-V Backup

Capture your entire system, including the host, with patented disk imaging integrated with VMware VADP / Microsoft VSS and RCT. RTOs is as low as 15 seconds with Acronis Active Restore™. You can enjoy unlimited P2V/V2V migrations from any source (even from a different hypervisor)

Question has a verified solution.

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

As with any other System Center product, the installation for the Authoring Tool can be quite a pain sometimes. This article serves to help you avoid making these mistakes and hopefully save you a ton of time on troubleshooting :)  Step 1: Make sur…
Technology opened people to different means of presenting information, but PowerPoint remains to be above competition. Know why PPT still works today.
The viewer will learn how to use the =DISCRINV command to create a discrete random variable, use this command to model a set of probabilities and outcomes in a Monte Carlo simulation, and learn how to find the standard deviation of a set of probabil…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…

910 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

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now