マクロプログラムで、ピリオドが消える

[OS]ALL
[リリース]
[キーワード] MACRO

[質問]

以下のマクロプログラムで、FILENAMEステートメントにファイル名を指定しても、ピリオドが消えて"sampledat"と展開されてしまいます。 なぜでしょうか。

%macro samp(fname);
  filename a "&fname.dat";
%mend samp;
%samp(sample)


[回答]

ピリオドはマクロ変数と他の文字列の区切りを示す機能を持っています。 ピリオドを文字列の一部として使用する場合は、".."と2つ記述してください。上の例の場合は、以下のようになります。

  filename a "&fname..dat";