in reply to Re: Re: Powerpoint OLE
in thread Powerpoint OLE
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$PpptApp = Presentations(Presentation1)->Open("$input"), ReadOnly ->Tr +ue;
This still won't work though.$PpptApp = $PptApp->Presentations(Presentation1)->Open("$input"), Read +Only ->True;
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)
expression Required. An expression that returns a Presentations collection.
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..$PpptApp = $PptApp->Presentations->Open("$input"), ReadOnly ->True;
and it does what we want it to do.my $PpptApp = $PptApp->Presentations->Open("$input", 1);
That should also help you figure out how you have to format other things to get them to work correctly.
Hope this helps..
Rich
|
|---|