2017年9月28日木曜日

「%IF条件」で「IN」を使う。(その2)




以下の記事をご覧ください。
「%IF条件」で「IN」を使う。


上の記事では、システムオプション「minoperator」 と 「mindelimiter」を指定すると、
「%IF条件」で「IN」が使えるようになると紹介しました。




もうひとつ別の書き方として、以下のようにも書けます。

%let MVAR1=1;

%macro TEST  /  minoperator mindelimiter=',' ;
      %if  &MVAR1 in (1,2)  %then %put NOTE: マクロ変数 MVAR1には 1 か 2 が設定されています;
%mend;

%TEST;


  • マクロ定義に直接このオプションを指定すると、そのマクロでのみオプションが有効になります
    • システムオプション「minoperator」「mindelimiter」の設定よりも優先される
  • minoperator」 でINが使えるようになります
    • 「IN」の代わりに「#」でもOK( %if &MVAR1 # (1,2) %then ... )
  • mindelimiter」 には値を区切る時の区切り文字(シングルバイト1文字)を指定
    • % & ' " ( ) ;」といったマクロ等で意味を持ちそうな区切り文字は設定できません
    • 区切り文字はシングルクォーテーションで囲む必要がある(ダブルクォーテーションではダメ)


📝注意



0 件のコメント:

コメントを投稿