ストアドマクロの使用法

[OS]ALL
[リリース] 6.09e, 6.12, 8.1, 8.2
[キーワード] macro, mstored, sasmstore

[質問]

コンパイル済みのマクロを特定のディレクトリに保存しておき、後で呼び出して実行することはできますか?

[回答]

マクロをコンパイルし、ライブラリに保存するためには、まずMSTOREDシステムオプションを指定して、コンパイル済みマクロ機能を有効にします。その上で、SASMSTORE=システムオプションを使用して、マクロを保存するライブラリ参照名を指定します。
さらに、マクロの定義時に、STOREマクロステートメントオプションを指定することで、SASMSTORE=システムオプションで指定したライブラリ内に、SASマクロカタログ「SASMACR」として保存することができます。

例1:コンパイル済みマクロ「sample」を「C:\temp」ディレクトリに保存する

  LIBNAME mylib 'C:\temp';
  OPTIONS MSTORED SASMSTORE=mylib; 
 
  %MACRO sample /STORE;
    PROC PRINT DATA=sashelp.class;
    RUN;
  %MEND sample;
例2:例1で保存したコンパイル済みマクロ「sample」を呼び出す
  LIBNAME mylib 'C:\temp';
  OPTIONS MSTORED SASMSTORE=mylib;
  %sample