Monks,
I am calling a dot file named vad.dot and it has a macro sub vad (path as string)...
I want to pass the parameter to this macro from Perl using Win32::OLE.
use Win32::OLE;
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Word';
$Win32::OLE::Warn = 2; # Throw Errors, I'll catch them
################################# Get the word object ################
my $word = Win32::OLE->GetActiveObject('Word.Application') ||
Win32::OLE->new('Word.Application', 'Quit'); #get the word
+object
$word->Documents->Add || die("Unable to create document ", Win32::OLE-
+>LastError());
################## Call the vad macro to create table #####
$word->AddIns->Add({Filename=>"$cur_dir\\vad.dot", Install=>"True"});
#$word->run("vad") #running fine
$word->run("vad", "D:\\Prasad\\Projects\\tools\\vad"'); #getting error
Previously, When I ran my tool without parameters for my macro, it was working fine.
Could someone tell me how to pass arguments?
This is the error I am getting,
OLE exception from "Microsoft Word":
Unable to run the specified macro
Win32::OLE(0.1707) error 0x80020003: "Member not found"
in METHOD/PROPERTYGET "run" at D:\Prasad\Projects\tools\vad\vad.pl
+ line 314
In VBA macro,
sub vad(path as string)
{
}
updated: added macro skeleton and fixed typos.