Excel操作 SASマクロ

【SAS】Excelファイルに名前を付けて保存する(DDE)

1.サンプルファイル

サンプルとして、Excelファイルを開くで開いた以下のファイルを保存してみます。
open_excel

 

2.展開例

引数infileは省略可能ですが、その場合はアクティブファイルが保存の対象となります。

%dde_save(
	infile	=都道府県.xlsx, 
	path	=C:\Blog\SAS\DDE, 
	outfile	=都道府県2.xlsx, 
	close	=Y
);

ちなみに、保存先に同一ファイルが存在する場合は、上書き保存の確認が表示されます。
dde_save_uwagaki

 

3.参考プログラム

以下は、参考プログラムになります。
右上のコピーボタンを押せば、プログラム全体をコピーできます。

%macro dde_save(infile=, path=, outfile=, close=Y);
%put --------------------------------------------------;
%put dde_save;	/*Excelファイルを名前を付けて保存する*/
%put &=infile;	/*保存前のファイル名を指定(省略した場合はアクティブファイルが対象となる)*/
%put &=path;	/*保存先のパスを指定(末尾のバックスラッシュ\は不要)*/
%put &=outfile;	/*保存後のファイル名を指定(拡張子必須)*/
%put &=close;	/*保存後にファイルを閉じる場合はYを指定(既定値=Y)*/
%put --------------------------------------------------;

	filename xlssys dde "excel|system";
	data _null_;
		file xlssys;
		put "[error(false)]";

		%if %length(&infile.)>0 %then %do;
			put "[activate(""&infile."")]";
		%end;

		put "[save.as(""&path.\&outfile."")]";

		%if %upcase(&close.)=Y %then %do;
			put "[close()]";
		%end;
	run;
	filename xlssys clear;

%mend dde_save;