2013年11月14日木曜日

「%IF条件」で「IN」を使う。




%IF  &マクロ変数名  IN  ( 値1, 値2 )


みたいな書き方は出来ない。。。と思ったら実はできる。



以下のプログラムは、マクロ変数 「MVAR1」 に 「1」 か 「2」 が設定されていたら、
ログにメッセージを表示するサンプル。

options minoperator mindelimiter=',' ;

%let MVAR1=1;

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

%TEST;

  • minoperator」 でINが使えるようになります
    • 「IN」の代わりに「#」でもOK( %if &MVAR1 # (1,2) %then ... )
  • mindelimiter」 には値を区切る時の区切り文字(シングルバイト1文字)を指定
    • % & ' " ( ) ;」といったマクロ等で意味を持ちそうな区切り文字は設定できません


今回の例では条件値を「,」で区切っています。
%IF条件でのINを利用不可に戻したいときは

options nominoperator;

delimiterの設定を戻すオプションはヘルプとかみても見つからず。



📝注意



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


4 件のコメント:

  1. 助かりました! by 隣^^;

    返信削除
  2. お役に立ててよかったです!

    返信削除
  3. 今日助かったので米しようとしたら、昔にも見たんですね(^^:)

    返信削除
    返信
    1. 引き続きお役に立てて良かったです!

      削除