Solved

Powerpoint Macro

Posted on 2011-02-21
6
806 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
Comment Utility
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
Comment Utility
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
Comment Utility
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
Comprehensive Backup Solutions for Microsoft

Acronis protects the complete Microsoft technology stack: Windows Server, Windows PC, laptop and Surface data; Microsoft business applications; Microsoft Hyper-V; Azure VMs; Microsoft Windows Server 2016; Microsoft Exchange 2016 and SQL Server 2016.

 
LVL 70

Author Comment

by:KCTS
Comment Utility
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
Comment Utility
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
Comment Utility
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

Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

Join & Write a Comment

My experience with Windows 10 over a one year period and suggestions for smooth operation
Outlook Free & Paid Tools
The viewer will learn how to simulate a series of sales calls dependent on a single skill level and learn how to simulate a series of sales calls dependent on two skill levels. Simulating Independent Sales Calls: Enter .75 into cell C2 – “skill leve…
The viewer will learn how to  create a slide that will launch other presentations in Microsoft PowerPoint. In the finished slide, each item launches a new PowerPoint presentation and when each is finished it automatically comes back to this slide: …

763 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

9 Experts available now in Live!

Get 1:1 Help Now