「&&マクロ変数」という指定方法を紹介します。
%let VAR1 = abcde;
%let X = 1; %put &&VAR&X ; ログ abcde |
「&&」と書くと、「&」を1つに置き換える命令になります。
この機能の何が便利なのか解説していきます。
- もし「&VAR&X」と書いた場合「&VAR」「&X」という2つのマクロ変数が指定されていると解釈されますが、
- 「&&VAR&X」とすると初手では「&&」「VAR」「&X」という3つに分けて解釈されて、以下のように展開されます。
- 「&&」→「&」
- 「VAR」→「VAR」
- 「&X」→「1」
- この3つの展開結果をくっつけると「&VAR1」になって、これがさらに展開されて「abcde」が返されます。
初手で「VAR」の部分がマクロ変数として解釈されないようにするテクニックです。
%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編」
2. マクロの登録と実行
3. 定位置パラメータ
4. キーワードパラメータ
5. クォート処理
6. クォート処理2
7. ループ処理
8. 条件分岐処理
9. ドット
10. &&
11. 演算評価
12. 補足
0 件のコメント:
コメントを投稿