1
votes

It's a basic and easy question but no way to find the answer or a good tutorial in the web. And obviously no way to find it in this Office Help.

I'm using a macro in VBA to generate a Powerpoint. The code constists in copying a template slide of a Powerpoint Document assigning value of an Excelline into the defined shape of the PPT template.

The question is: I have no idea as to define the shape like in this previous code :

PptDoc.Slides(iSlide).Shapes("URL").TextFrame.TextRange = VerbatimSheet.Cells(i, 2).Value

How can I define the "url" shape? In the template or in the VBA Macro of Excel?

3
By the way does anyone has EVER found something in the MS Office Help?c24b

3 Answers

2
votes

You can use índex of object for example

Dim shp as shape
Set shp=pptdoc.slides(islide).shapes(1)
shp.textframe.textrange= foo
1
votes

In the ppt slide template, give your shape the name "URL" - not as easy to name shapes in ppt as in (eg) xl, but it can be done.

Just enter this in the immediate window of the ppt VB editor (with the shape selected) and hit enter:

ActiveWindow.Selection.shaperange(1).Name = "URL"

You can check it worked by entering:

? ActiveWindow.Selection.shaperange(1).Name 'should get "URL"
0
votes

The two answers are correct and helps me a lot to understand this very basic step It's a great lesson for me thanks

The first code is the stylish way to get ride of the problem It has the advantage of defining by defaut a name to a shape and link it directly to the value I'm assigning to inside the code.

The second is a good way to help a beginner in programming but requires two macro. One in the Excel and one in the ppt and allow to change the name of the shapes manually. It has the advantage to help visualize exactly the shape you are using and you need to control.

Thank a lot to both of you!