Early bound to Late bound

H

Henk

How do I convert the following cod from Early bind to Late bind?

Public Sub ChartToPowerPoint()
Dim PPApp As PowerPoint.Application
Dim PPPres As PowerPoint.Presentation
Dim PPSlide As PowerPoint.Slide
Dim NewIndex As Integer
Dim ChartName As String
ChartName = ActiveSheet.Name
ActiveSheet.ChartObjects(ChartName).Activate
ActiveChart.ChartArea.Select
ActiveChart.CopyPicture Appearance:=xlScreen, Size:=xlScreen, Format:=xlBitmap
Set PPApp = GetObject(, "Powerpoint.Application")
Set PPPres = PPApp.ActivePresentation
PPApp.ActiveWindow.ViewType = ppViewNormal
NewIndex = PPPres.Slides.Count + 1
PPPres.Slides.Add(Index:=NewIndex, Layout:=ppLayoutBlank).Select
Set PPSlide = PPPres.Slides
_(PPApp.ActiveWindow.Selection.SlideRange.SlideNumber)
PPApp.ActiveWindow.ViewType = ppViewSlide
PPSlide.Shapes.Paste.Select
PPApp.ActiveWindow.Selection.ShapeRange.Height = 303.5
PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
PPApp.ActiveWindow.ViewType = ppViewNormal
Set PPSlide = Nothing
Set PPPres = Nothing
Set PPApp = Nothing
End Sub

Hope you can help me out.

Henk
 
C

Chip Pearson

You need to change every variable declaration that references the
PowerPoint library to As Object. E.g., change

Dim PPApp As PowerPoint.Application
to
Dim PPApp As Object

Do this for all PowerPoint variables.

Then, you need to change all variables that are defined within
PowerPoint to their numeric equivalents. E.g,. change

ppViewNormal
to
3 ' this isn't the real value. look it up.

You can get the numeric values from the Object Browser (press F2 in
VBA). Search in the Object Browser for each ppt value.

Finally, once you have done all that, go to the Tools menu in VBA and
choose References. There, uncheck the reference to PowerPoint. Go to
the Debug menu and choose Compile and make sure it compiles cleanly.

Cordially,
Chip Pearson
Microsoft Most Valuable Professional
Excel Product Group, 1998 - 2009
Pearson Software Consulting, LLC
www.cpearson.com
(email on web site)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top