マクロ変数に特殊文字を格納したい

[OS] ALL
[リリース] ALL
[キーワード] マクロ変数, クオート

[質問]

マクロ変数を用いて、データセットのファイル出力を行っていますが、ファイル名に"("が含まれるファイル名を使用するとエラーになります。

[回答]

マクロ変数に特殊文字を含むテキストを格納する場合、%BQUOTE関数もしくは、%NRBQUOTE関数を用います。

%BQUOTE関数では以下のテキストをマスクします。

============================
' " ( ) + ? * / < > = ¬ ^ ~ ; , # blank
AND OR NOT EQ NE LE LT GE GT IN
============================

%NRBQUOTE関数では、上記に加え、以下のテキストをマスクします。

============================
& %
============================

例)
FILENAME FOUT "c:\temp";
%LET OUT = テスト(1);

DATA _NULL_;
  FILE FOUT(%BQUOTE(&OUT.).txt);
  PUT "テストデータ";
RUN;