複数のSASデータセットを、1つのMicrosoft Excelファイル(ブック)内で複数のシートに分けて出力する方法を教えてください。
EXPORTプロシジャでは、同一ブック内の複数シートへの出力はできません。次の2通りの方法で出力する方法があります。
具体的な説明とプログラム例をご紹介します。
■ DDE の機能を使用してExcelシートに書き込む方法
DDEは、Dynamic Data Exchange の略で、Microsoft社が提供しているWindowsアプリケーション間でのデータ交換に広く
使用されているプロトコルです(DDEの詳細については、Microsoft社提供、市販されている書籍などでご確認ください)。
SASでは、このDDEプロトコルを利用して、MS-Excelにデータを出力することが可能です(※ MS-ExcelがSASと同じPCに
インストールされていることが必要です)。
以下のプログラム例では、2つのシートに出力していますが、この部分を適宜変更することにより、さらに複数のシートに
対して書き込むことができます。
OPTIONS NOXWAIT NOXSYNC;
X "start excel";
/* MS Excel を起動 */
DATA _null_;
x=SLEEP(10);
RUN;
/* Excelの起動を10秒待機 */
/* 待機時間は環境に応じて変えてください */
FILENAME ddedata DDE 'excel|sheet1!r1c1:r100c3';
/* DDEを利用したエクセル出力 */
/* シート1枚目 */
/* 乱数を使用して、サンプルを作成します */
DATA _null_;
FILE ddedata;
DO i = 1 TO 100;
x = RANUNI(i);
y = 10 + x;
z = x - 10;
PUT x y z;
END;
RUN;
/* Excelへの書き込みを待機 */
DATA _null_;
x=SLEEP(10);
RUN;
FILENAME ddedata2 DDE 'excel|sheet2!r1c1:r100c3';
/* シート2枚目 */
/* 乱数を使用して、サンプルを作成します */
DATA _null_;
FILE ddedata2;
DO i = 1 TO 100;
x = RANUNI(i);
y = 20 + x;
z = x - 30;
PUT x y z;
END;
RUN;
■ SAS/ACCESS to ODBCを用いてExcelシートに書き込む方法
データソースの定義は、[ODBC データ ソース アドミニストレーター]を開き、データソースを定義します。なお、詳細の定義方法につきましては、Microsoft提供のヘルプ等をご参照ください。
[ODBC データ ソース アドミニストレーター]は、SASのビット数に合わせて、定義する必要があります。
一般的に、以下の実行ファイルより、[ODBC データ ソース アドミニストレーター]は、開くことができます。
32ビットの[ODBC データ ソース アドミニストレーター]
C:\Windows\SysWOW64\odbcad32.exe
64ビットの[ODBC データ ソース アドミニストレーター]
C:\WINDOWS\system32\odbcad32.exe
libname mylib odbc dsn=Excel; /*データソース名をExcel とします。*/ /*上記データソースの設定で定義した名前を指定してください。*/
DATA mylib.sheet1a; SET sashelp.class; RUN; /* 新しくsheet1a を作成 */ DATA mylib.sheet2a; SET sashelp.class; RUN; /* 新しくsheet2a を作成 */
libname mylib clear;
なお、Excelへの複数シート出力に関するサンプルのマクロを、下記のURLで公開しています。あわせてご参照ください。
URL:http://support.sas.com/kb/6/695.html
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 16. Read more here about why you should contribute and what is in it for you!
コミュニティの基本的なガイドラインについてご説明します。まずは、こちらをご参照ください。
SAS Support CommunitiesのFAQはヘルプに記載されています。参照方法は、こちらからご確認ください。
Japan SAS Discussionページに質問や意見(メッセージ)を投稿/返信する方法を簡単にご説明します。