Solved

Problems with powerpoint vba initialising APP

Posted on 2013-11-25
3
654 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
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

Enterprise Mobility and BYOD For Dummies

Like “For Dummies” books, you can read this in whatever order you choose and learn about mobility and BYOD; and how to put a competitive mobile infrastructure in place. Developed for SMBs and large enterprises alike, you will find helpful use cases, planning, and implementation.

Question has a verified solution.

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

 Regular Expressions Microsoft Word has sophisticated search tools that can search for patterns. For example if you wanted to search for all UK phone numbers that followed a pattern of five digits, a space and then six digits you can easily do th…
A simple tool to export all objects of two Access files as text and compare it with Meld, a free diff tool.
What’s inside an Access Desktop Database. Will look at the basic interface, Navigation Pane (Database Container), Tables, Queries, Forms, Report, Macro’s, and VBA code.
With Microsoft Access, learn how to start a database in different ways and produce different start-up actions allowing you to use a single database to perform multiple tasks. Specify a start-up form through options: Specify an Autoexec macro: Us…

829 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