前のページ|次のページ

%*マクロコメントステートメント

コメントテキストを指定します。

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

構文

%*commentary;

必須引数

commentary

任意の長さの説明メッセージを指定します。

詳細

マクロコメントステートメントはマクロプログラムを説明する場合に使用します。マクロコメントステートメント内のテキストは定数テキストではないため、コンパイル済みマクロ内には保存されません。コメントステートメントはセミコロンで終了するため、コメント内にセミコロンを含める場合、そのセミコロンを引用符で囲む必要があります。マクロコメントステートメントを引用符で囲んだ場合、そのコメントステートメントは認識されません。
マクロコメントステートメントは完全なマクロステートメントであり、マクロ機能により処理されます。マクロコメントの内部にある引用符はペアとしてマッチする必要があります。
マクロステートメントがマクロ機能により処理されないようにするには、マクロ定義やオープンコード内でマクロステートメントマクロコメントステートメントを使うか、または /*commentary*/形式のSASコメントを使用します。

比較

形式
*commentary;
と入力するか
comment commentary;
を持つSASコメントステートメントは、完全なSASステートメントです。この形式を持つコメントステートメントはトークナイザやマクロ機能により処理されるため、セミコロンやペアマッチしない引用符を同ステートメントに含めることはできません。形式
*commentary;
と入力するか
comment commentary;
を持つSASコメントステートメントは、コンパイル済みマクロ内に定数テキストとして保存されます。これらの2種類のSASコメントステートメントは、コメント内にマクロステートメントが含まれている場合、それらのマクロステートメントをすべて実行します。このため、これらのSASコメントステートメントをマクロ定義内では使用しないよう推奨します。
一方、形式
/*commentary*/
を持つSASコメントはトークン化されず、1つの文字列として処理されます。この形式のコメントは、単一の空白が記述できる場所であればどこでも記述可能であり、セミコロンやペアマッチしない引用符を含むこともできます。一方、形式
/*commentary*/
を持つSASコメントは、コンパイル済みマクロには保存されません。

例: 各種のコメントタイプの比較

次のプログラムは、データエラーをチェックするマクロVERDATAを定義して呼び出すものです。このプログラムには、マクロコメントステートメントと、2つの形式(/*commentary*/および*commentary;を持つSASコメントステートメント が含まれています。
%macro verdata(in, thresh);
    *%let thresh = 5;
    /* The preceding SAS comment does not hide the %let statement
        as does this type of SAS comment.
        %let thresh = 6;
    */
   %if %length(&in) > 0 %then %do;
         %* infile given;
      data check;
           /* Jim's data */
         infile ∈
         input x y z;
            * check data;
         if x<&thresh or y<&thresh or z<&thresh then list;
      run;
   %end;
   %else %put Error: No infile specified;
%mend verdata;
%verdata(ina, 0)
マクロVERDATAを実行すると、次の行が生成されます。
DATA CHECK;
   INFILE INA;
   INPUT X Y Z;
      * CHECK DATA;
   IF X<5 OR Y<5 OR Z<5 THEN LIST;
RUN;
前のページ|次のページ|ページの先頭へ