|
|
マクロカタログからマクロのソースコードを参照する
[OS] ALL
[リリース] SAS 9.1以降
[キーワード] MACRO, stored macro, source, %COPY
[質問]
マクロカタログ(sasmacr.sas7bcat)があります。
SASからライブラリを割り当てることでエントリ(マクロ名)の一覧を確認することができたのですが、マクロを実行せずにソースコードを参照することはできないでしょうか。
[回答]
SAS 8.2では、コンパイル済みのマクロ(ストアドコンパイルマクロ)からソースコードを参照することはできません。
SAS9では%MACROステートメントにSOURCEオプションが追加されました。
このオプションはマクロカタログ内にマクロのソースコードを格納します。ストアドコンパイルマクロの作成時にSOURCEオプションを指定しておくと、後からソースコードを参照することができます。
ソースコードの参照は%COPYステートメントを使用します。
- (1) ストアドコンパイルマクロの作成
-
LIBNAME maclib 'C:¥temp';
OPTIONS MSTORED SASMSTORE=maclib;
%MACRO sample /STORE SOURCE;
DATA class;
SET sashelp.class;
RUN;
%MEND;
- (2) ソースコードの参照
-
LIBNAME maclib 'C:¥temp';
OPTIONS MSTORED SASMSTORE=maclib;
/* ソースコードをSASログに表示 */
%COPY sample /SOURCE;
/* ソースコードをテキストファイルに保存 */
%COPY sample /SOURCE OUT='C:¥temp¥sample.sas';
|