|laziness, impatience, and hubris|
Re:(3)Powerpoint OLEby rchiav (Deacon)
|on Sep 08, 2001 at 22:23 UTC||Need Help??|
OK.. don't take this too harshly, because it's all meant in the spirit of learning. The problem here is that you have quite a bit to learn about OLE with Perl in general. There's various things you're doing that just won't work.
First, you need to read the information about the OLE objects for powerpoint. I've never done any OLE Automation with Powerpoint, but this is what I've gathered..
Let's take a look at the following line..
The first thing here is that you're not specifying where "Presentations(..)->Open is. Presentations is a member of PptApp. You have to remember that what you're doing is creating an instance of powerpoint here. When you write a macro, you're already in powerpoint so you don't have to tell it that it's using itself. OLE gives you the ability to use functions that other apps export outside themselves. So so for our purposes, we'll change this to
This still won't work though.
Now look at this which describes the Presentation collection.
In that, you'll see..
Use Presentations(index), where index is the presentation's name or index number, to return a single Presentation object.
This is referring to the presentations that are already in the collection. Currently, you have no presentations, so you can't refrence one. What you want to do though is add one. Actually you want to open an existing one and add it to the collection. So that leads us to this, which describes the Open functionality. You'll see..
expression.Open(FileName, ReadOnly, Untitled, WithWindow)
OK.. so we also know that Presentations returns a Presentation Collection. So that would now make out line..
Now.. this will actually open the file.. but it's still not correct. If you look back at the information on Open, you'll see that it takes 4 arguments. The last 3 are optional. Respectivly they are "Readonly", "Untitled" and "WithWindow". In Perl, there's no True and False keywords.. but 0 (false) and 1(true) will suffice. So we now change the line to..
and it does what we want it to do.
That should also help you figure out how you have to format other things to get them to work correctly.
Hope this helps..