特殊文字
|
マスクが必要な状況
|
すべてのマクロクォーティング関数によってクォーティングされるか
|
備考
|
---|---|---|---|
+-*/<>=^|¬ ~ # LE LT EQ NE GE GT AND OR NOT IN
|
%EVAL関数の引数で、演算子として扱われないようにするため。
|
Yes
|
AND、OR、IN、およびNOTは、%EVALおよび%SYSEVALFによってニーモニック演算子として解釈されるため、マスクする必要があります。
|
空白
|
値の前後の空白または単独の空白が無視されず、維持されるようにするため。
|
Yes
|
|
;
|
マクロプログラムステートメントの末尾を誤って示さないないようにするため。
|
Yes
|
|
, (カンマ)
|
関数の新しい引数、パラメータ、またはパラメータ値を示さないようにするため。
|
Yes
|
|
' " ( )
|
不一致である可能性がある場合。
|
No
|
マクロ機能が一重引用符、二重引用符、およびかっこを、マクロ言語のシンボルまたはSAS言語の一致しない引用符やかっことしてではなく、テキストとして解釈するために、引用符やかっこを含む可能性のある引数をマクロクォーティング関数を使用してマスクする必要があります。%
STR、%NRSTR、%QUOTE、および%NRQUOTEでは、%記号を使用して、一致しない引用符とかっこにマークを付ける必要があります。%BQUOTE、%NRBQUOTE、および%SUPERQの引数に含まれる一致しないシンボルには、マークを付ける必要はありません。
|
%name &name
|
(式の置換結果によって変わります。)
|
No
|
%NRSTR、%NRBQUOTE、および%NRQUOTEは、これらのパターンをマスクします。マクロ変数を渡して%SUPERQを使用するには、名前からアンパサンドを省略します。
|
%let p=%str(proc print; run;);
%macro pr(start); %if &start=yes %then %do; %put proc print requested; proc print; run; %end; %mend pr;