前のページ|次のページ

%DOステートメント

%DOグループを開始します。

種類: マクロステートメント
制限事項: マクロ定義でのみ使用可能
参照項目: %ENDステートメント

構文

%DO;
text and macro language statements
%END;

詳細

%DOステートメントは、マクロ定義の特定セクションの開始を指定します。このセクションは、対応する%ENDステートメントを検出するまで1つの単位として扱われます。このマクロセクションのことを%DOグループと呼びます。%DOグループはネストが可能です。
単純な%DOステートメントは、%IF条件のtrueまたはfalseに応じて処理されるマクロセクションを指定するために、しばしば%IF-%THEN/%ELSEステートメントと組み合わせて使用されます。

例: 2つのレポートのうちどちらか1つを生成する

次に示すマクロでは、2つの%DOグループを%IF-%THEN/%ELSEステートメントと組み合わせて使用することで、条件に応じて2つのレポートのうちどちらか1つを出力します。
%macro reportit(request);
   %if %upcase(&request)=STAT %then
      %do;
         proc means;
            title "Summary of All Numeric Variables";
         run;
      %end;
   %else %if %upcase(&request)=PRINTIT %then
      %do;
         proc print;
            title "Listing of Data";
         run;
      %end;
   %else %put Incorrect report type. Please try again.;
   title;
%mend reportit;
%reportit(stat)
%reportit(printit)
マクロ変数REQUESTの値としてstatを指定すると、PROC MEANSステップが生成されます。printitを指定すると、PROC PRINTステップが生成されます。それ以外の値を指定すると、カスタマイズしたエラーメッセージがSASログに書き込まれます。
前のページ|次のページ|ページの先頭へ