前のページ|次のページ

%PUTステートメント

テキストやマクロ変数の情報をSASログに書き込みます。

種類: マクロステートメント
制限事項: マクロ定義またはオープンコードで使用可能

構文

%PUT <text | _ALL_ | _AUTOMATIC_ | _GLOBAL_ | _LOCAL_ | _READONLY_
| _USER_ | _WRITABLE_>
;

必須引数

引数なし

空白行をSASログに出力します。

text

SASログに書き込むテキストまたはテキスト式を指定します。textの長さがが現在の行サイズよりも大きい場合、同テキストの残りの部分は次の行に出力されます。%PUTステートメントは、textの先頭および末尾にある空白を削除します。これらの空白を残したい場合は、引数のテキストに対してマクロクォーティング関数を使用します。

_ALL_

すべてのユーザー定義のマクロ変数および自動マクロ変数の値をリストします。

_AUTOMATIC_

自動マクロ変数の値をリストします。リストされる自動変数は、お使いのオペレーティングシステム上にインストールされているSAS製品により異なります。スコープはAUTOMATICとして識別されます。

_GLOBAL_

ユーザー定義のグローバルマクロ変数をリストします。スコープはGLOBALとして識別されます。

_LOCAL_

ユーザー定義のローカルマクロ変数をリストします。スコープは、現在実行中のマクロの名前になります。

_READONLY_

スコープに関係なく、ユーザー定義の読み込み専用マクロ変数をすべてリストします。 スコープは、グローバルマクロ変数の場合はGLOBALとして表示され、そうでない場合は、そのマクロ変数が定義されているマクロの名前として表示されます。

_USER_

ユーザー定義のグローバル/ローカルマクロ変数をリストします。スコープはGLOBALとして識別されるか、またはこのマクロ変数が定義されているマクロの名前になります。

_WRITABLE_

スコープに関係なく、ユーザー定義の読み込み/書き込みマクロ変数をすべてリストします。スコープは、グローバルマクロ変数の場合はGLOBALとして表示され、そうでない場合は、そのマクロ変数が定義されているマクロの名前として表示されます。

詳細

%PUTステートメントを使用してマクロ変数の説明をリストする場合、同ステートメントの実行時に存在しているマクロ変数のみが対象となります。この説明には、マクロ変数のスコープ、名前、値が含まれます。ヌル値を含むマクロ変数の場合、その変数のスコープと名前のみが表示されます。マクロクォーティング関数によりクォートされた値の文字列は、クォートされたままになります。現在の行サイズよりも大きい長さを持つ値は、次の行に折り返して表示されます。マクロ変数は、まず現在のローカルマクロ変数、続いて現在のグローバルマクロ変数という順番でリストされます。
注: 特定のスコープ内で、マクロ変数は任意の順番で現れるため、%PUTステートメントの実行タイミングや実行するSASセッションが異なれば、マクロ変数の順番も異なる場合があります。このため、変数がリスト内の特定位置に存在することを前提とするようなプログラムは作成しないでください。
%PUTステートメントの引数の種類とスコープの関係を次の図に示します。
%PUTステートメントの引数の種類とスコープの関係
%PUTステートメントの引数の種類とスコープの関係
%PUTステートメントは、SASシステムにより生成されるERROR、NOTE、WARNINGの各メッセージに似たメッセージを生成する場合、テキストを異なる色で表示します。テキストを異なる色で表示するには、%PUTステートメントの引数の先頭ワードにERROR、NOTE、WARNING(すべて大文字)のいずれかを指定し、その直後にコロンまたはハイフンを指定します。ERROR、NOTE、WARNINGの代わりに、それらに相当する自国語のワードを使用することもできます。ERROR、NOTEまたはWARNINGキーワードの後にハイフン(-)を指定すると、その%PUTステートメントのテキストは、前のERROR、NOTEまたはWARNINGメッセージのそれぞれの続きとなります。ハイフンを指定すると、ワードERROR、NOTE、WARNINGが空白となります。
注: %PUTステートメントで、自動マクロ変数SYSWARNINGTEXTおよびSYSERRORTEXTにより生成された最終メッセージテキスト(&%を含んでいるもの)を引数として使用する場合、同テキストに対してマクロクォーティング関数%SUPERQを適用する必要があります。詳細については、SYSERRORTEXT自動マクロ変数およびSYSWARNINGTEXT自動マクロ変数を参照してください。
ヒント
アンパサンド記号と、直接マクロ変数参照のマクロ変数名の間に等号を配置すると、そのマクロ変数の名前が、同マクロ変数の値とともにSASログに表示されます。
%let x=1;
%put &=x;
X=1;

例1: テキストの表示

%PUTステートメントを使用してテキストをSASログに書き込む例を次に示します。
%put One line of text.;
%put %str(Use a semicolon(;) to end a SAS statement.);
%put %str(Enter the student%'s address.);
これらのステートメントをサブミットすると、次の行がSASログに出力されます。
One line of text.Use a semicolon(;) to end a SAS statement.Enter the student's address.

例2: 自動変数の表示

すべての自動変数を表示するには、次のステートメントをサブミットします。
%put _automatic_;
結果として、SASログには、各自動変数のスコープ、名前、値がリストされます(リストされる変数は、お使いのサイトにインストールされているSAS製品により異なります)。
AUTOMATIC SYSBUFFR
AUTOMATIC SYSCMD
AUTOMATIC SYSDATE 21JUN97
AUTOMATIC SYSDAY Wednesday
AUTOMATIC SYSDEVIC
AUTOMATIC SYSDSN         _NULL_
AUTOMATIC SYSENV FORE
AUTOMATIC SYSERR 0
AUTOMATIC SYSFILRC 0
AUTOMATIC SYSINDEX 0
AUTOMATIC SYSINFO 0

例3: ユーザー定義の変数の表示

次の例は、すべてのスコープにおけるユーザー定義のマクロ変数をリストします。
%macro myprint(name);
   proc print data=&name;
      title "Listing of &name on &sysdate";
      footnote "&foot";
   run;
   %put _user_;
%mend myprint;
%let foot=Preliminary Data;
%myprint(consumer)
%PUTステートメントは、次の行をSASログに書き込みます。
MYPRINT NAME consumer GLOBAL FOOT Preliminary Data
SYSDATEは自動マクロ変数であるため、結果には表示されていないことに注意してください。
マクロMYPRINTの終了後にユーザー定義のマクロ変数を表示するには、同じ%PUTステートメントをもう一度サブミットします。
%put _user_;
その結果として、SASログには、マクロ変数NAMEがリストされません。マクロ変数NAMEはマクロMYPRINTのローカルマクロ変数であるため、マクロMYPRINTの実行が完了した時点で存在しなくなります。
GLOBAL FOOT Preliminary Data

例4: ローカル変数の表示

次の例では、マクロANALYZEのローカルマクロ変数を表示します。SASログには次の結果が出力されます。
%macro analyze(name,vars);
   proc freq data=&name;
      tables &vars;
   run;
   %put FIRST LIST:;
   %put _local_;
   %let firstvar=%scan(&vars,1);
   proc print data=&name;
      where &firstvar ne .;
   run;
   %put SECOND LIST:;
   %put _local_;
%mend analyze;
%analyze(consumer,car house stereo)
最初の%PUT _LOCAL_ステートメントの後に作成されたマクロ変数FIRSTVARが、2番目の%PUT _LOCAL_ステートメントにより表示されています。
FIRST LIST:ANALYZE NAME consumer ANALYZE VARS car house stereo SECOND LIST:ANALYZE NAME consumer ANALYZE VARS car house stereo ANALYZE FIRSTVAR car
前のページ|次のページ|ページの先頭へ