前のページ|次のページ

SYSPBUFF自動マクロ変数

マクロパラメータ値として指定されたテキストが格納されます。

種類: 自動マクロ変数(読み込みおよび書き込み)

詳細

SYSPBUFFは、PARMBUFFオプションを使用して定義されたマクロの呼び出しにおいて、パラメータ値で指定されたテキストに置換されます。ネームスタイル呼び出しの場合、このテキストには、かっことカンマが含まれます。PARMBUFFオプションとSYSPBUFFを使用して、呼び出しごとに個数が変わるパラメータを受け取るマクロを定義できます。
マクロ定義に一連のパラメータとPARMBUFFオプションの両方が含まれている場合、このマクロを呼び出すと、値がパラメータで受け取られ、値の呼び出しリスト全体がSYSPBUFFに割り当てられます。
注: SYSPBUFF自動マクロ変数は、それが存在するスコープ内でのみ変更できます。SYSPBUFFのインスタンスを含んでいない内部スコープ内でSYSPBUFFに値を割り当てようとすると、その内部スコープ内でSYSPBUFFの新しいインスタンスが作成されます。

例: SYSPBUFFを使用したマクロパラメータ値の表示

マクロPRINTZは、PARMBUFFオプションを使用して個数が変わるパラメータを定義し、SYSPBUFFを使用して呼び出し時に指定されたパラメータを表示します。
%macro printz/parmbuff;
   %put Syspbuff contains: &syspbuff;
   %let num=1;
   %let dsname=%scan(&syspbuff,&num);
   %do %while(&dsname ne);
      proc print data=&dsname;
      run;
      %let num=%eval(&num+1);
      %let dsname=%scan(&syspbuff,&num);
   %end;
%mend printz;
%printz(purple,red,blue,teal)
このプログラムを実行すると、次の行がSASログに書き込まれます。
Syspbuff contains:(purple,red,blue,teal)
前のページ|次のページ|ページの先頭へ