2016年7月27日水曜日

マクロ言語入門10:マクロ変数と&&




以下のプログラムをご覧ください。


例1
%let  VAR1 = abcde;
%let  X = 1;

%put  &&VAR&X ;

ログ
abcde


「&&マクロ変数」 というように&が2つあると、マクロ変数を展開するタイミングを遅らせることが出来ます。
どういう事かというと、、


「&&VAR&X」 の展開手順

① 「&&VAR」 から&を1つ除いた 「&VAR」 に置換。ここではまだマクロ変数として展開しない。
② 「&X」 を 「1」に展開。
③ 上記①②の置換・展開結果をくっつけた 「&VAR1」 を展開 → 「abcde」





例2
%let  VAR1 = aaa;
%let  VAR2 = bbb;
%let  VAR3 = ccc;

%macro TEST;
    %do i = 1 %to 3;
          %put  &&VAR&i ;
    %end;
%mend;

%TEST;

ログ
aaa
bbb
ccc

%DOループと&&マクロ変数の組み合わせはよく用います。




実践例

以下に&&の実践的な使い方の記事リンクを貼っておきます。
慣れるまでややこしい感じのプログラムなので、余裕があったらそのうち、、という感じで参考にして頂ければと思います。

変数値をマクロ変数に格納する方法「CALL SYMPUTX編」




記事一覧

1. マクロ変数とは
2. マクロの登録と実行
3. 定位置パラメータ
4. キーワードパラメータ
5. クォート処理
6. クォート処理2
7. ループ処理
8. 条件分岐処理
9. ドット
10. &&
11. 演算評価
12. 補足


0 件のコメント:

コメントを投稿