Excelで開いているブックを全て閉じる
先ず Perlから OLEを使用するには Win32::OLEモジュールを使用します、これは標準で Perlと一緒にインストールされるモジュールなのでインストールなどは不要だと思います。 使用方法は、以下のように use ステートメントでモジュールを指定します。
use strict;
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Excel';
my $Excel = Win32::OLE->GetActiveObject('Excel.Application')
|| die "Excelが起動していません";
$Excel->{DisplayAlerts} = 'False';
$Excel->Workbooks->close() ;
Excelオブジェクトの DisplayAlertsプロパティの値を 「False」 にする事によって Excelの警告メッセージが表示されなくなります。 このサンプルでは更新されているファイルも無関係に全て警告メッセージを表示させずに終了します。
Workbookオブジェクトの Closeメソッドでは対象の Workbook自身しか終了しませんが、Workbooksコレクションの closeメソッドを実行すると、現在開いている全てのブックを終了する事が出来ます。
|