Solved

Problems with powerpoint vba initialising APP

Posted on 2013-11-25
3
656 Views
Last Modified: 2013-11-25
I have tried to follow the guidance provided on the Microsoft website for event handling but i can not get the following to code work.

I have a classmodule called "EventClassModule" - includes the following code

Public WithEvents App As PowerPoint.Application

Private Sub App_PresentationOpen(ByVal Pres As Presentation)
    ActivePresentation.Slides(12).Shapes("TextBox1").OLEFormat.Object.Text = "Basic introduction to training"
End Sub

I have a module called "Module1" includes the follwoing code

Dim X As New EventClassModule
Sub InitializeApp()
    Set X.App = PowerPoint.Application
End Sub

And i was hoping that when i open the ppt file the text box on page12, textbox1 will be populated but it simply does not work and does not error.

I am obviously doing something very stupid (like where and how do i run initializeapp), all help most welcome
0
Comment
Question by:SweetingA
[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 Comments
 
LVL 50

Accepted Solution

by:
Rgonzo1971 earned 500 total points
ID: 39673996
Hi

the code InitialzeApp

Sub InitializeApp()
    Set X.App = PowerPoint.Application
End Sub

Open in new window


Doesn't fire itself

you have to have an autoopen in an ppt File saved as add-in to do it (ppta) and the rest of your class module code

Dim X As New EventClassModule

Sub Auto_Open() 
     Set X.App = PowerPoint.Application
End Sub 

Open in new window

Regards
0
 

Author Comment

by:SweetingA
ID: 39674726
Hello there,

sorry i am a real dummy and a new starter to this.

Can you explain the procedure right from the start as i may have other things set wrong.

Sorry to be a pest.

Thanks
0
 
LVL 23

Expert Comment

by:JSRWilson
ID: 39674800
Rgonzo is telling you (correctly) that it is very difficult  to fire the sub to initialise the event object from a normal presentation. The only reliable sub that fires is Auto_Open BUT it will only fire when an ADDIN loads. The ADDIN cannot contain your slides.

If this is a pptm file AND you are sure the user is opening in edit mode and Macro security is set low enough you can use the ribbon onLoad Event from XML. You may not even need the class module.

There's a simple tutorial on how to add this XML to the presentation.

http://www.pptalchemy.co.uk/PowerPoint_Auto_Open_Code.html

In the presentation


Sub OnLoadCode()
   ActivePresentation.Slides(12).Shapes("TextBox1").OLEFormat.Object.Text = "Basic introduction to training"
End Sub

If you can wait for the show to begin before changing the ActivX text then it is easier!

Probably good to explain WHY the text has to be changed too.
0

Featured Post

Revamp Your Training Process

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action.

Question has a verified solution.

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

Technology opened people to different means of presenting information, but PowerPoint remains to be above competition. Know why PPT still works today.
Access developers frequently have requirements to interact with Excel (import from or output to) in their applications.  You might be able to accomplish this with the TransferSpreadsheet and OutputTo methods, but in this series of articles I will di…
The viewer will learn how to edit the master slide. They will also learn how to combine multiple themes into one master slide to use them in their presentation.
In Microsoft Access, learn how to “cascade” or have the displayed data of one combo control depend upon what’s entered in another. Base the dependent combo on a query for its row source: Add a reference to the first combo on the form as criteria i…

726 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