[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

Problems with powerpoint vba initialising APP

Posted on 2013-11-25
3
Medium Priority
?
670 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 53

Accepted Solution

by:
Rgonzo1971 earned 1500 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

Fill in the form and get your FREE NFR key NOW!

Veeam® is happy to provide a FREE NFR server license to certified engineers, trainers, and bloggers.  It allows for the non‑production use of Veeam Agent for Microsoft Windows. This license is valid for five workstations and two servers.

Question has a verified solution.

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

A lot of things can happen during a presentation, worst of which is “death by PowerPoint.” Here are a few mistakes to avoid to make your slides clean.
Access custom database properties are useful for storing miscellaneous bits of information in a format that persists through database closing and reopening.  This article shows how to create and use them.
Learn how to number pages in an Access report over each group. Activate two pass printing by referencing the pages property: Add code to the Page Footers OnFormat event to capture the pages as there occur for each group. Use the pages property to …
With Microsoft Access, learn how to specify relationships between tables and set various options on the relationship. Add the tables: Create the relationship: Decide if you’re going to set referential integrity: Decide if you want cascade upda…

649 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