How can I run a macro in an Excel file I open with Perl?
+8
A:
Here is a skeleton of what might work.
use strict;
use warnings;
use Win32::OLE;
my $excel= Win32::OLE->new('Excel.Application')
or die "Could not create Excel.Application!\n"
;
$excel->Workbooks->open( 'C:\Users\Me\Documents\Book1.xlsx' );
$excel->run( 'Book1!Macro1' );
$excel->quit;
One of the most sure ways that you can do this is to simply record a macro of opening a spreadsheet and running a macro. And then taking a look at the macro code that was generated and convert it into Perl. Keep in mind that the OLE object is the Application object.
9/22/2010 - I added quit
to stop Excel from running.
Axeman
2010-09-20 13:13:55
this solution is suitable. Thank you!
jushlwest
2010-09-20 13:28:40
@jushlwest, then you should accept it by clicking on the checkmark near the score.
cjm
2010-09-20 18:57:20
excel.exe not hang after the perl script. In taskmgr many duplicate excel.exe. How can I fix it?
jushlwest
2010-09-21 11:29:11
`undef $excel;` at the end will stop excel.exe
Powertieke
2010-09-22 14:06:43
Axeman
2010-09-22 14:23:23