2022年11月1日火曜日

ユニークなライブラリ参照名、ファイル参照名を定義するマクロ

マクロを書いていて地味に困るのがテンポラリのファイル参照名、ライブラリ参照名を定義することです。ユニークでぶつからない名前を定義するために、小さいコードを書きました。参照するファイルが、SASファイルでも動くようにアンダースコアで始まるようにしています。filename関数でテンポラリの名前を作ると #LN00058 のような名前になります。これだと正しくアサインできないときがあるので、アンダースコア始まりにしています。

それと、マクロの定義を削除するステートメントを良く忘れるのでメモしておきます。%SYSMACDELETE で定義したマクロを削除します。AUTOEXECの中で使うけど最後には後始末しておきたいときに使います。

  1. %macro _uname();  
  2.   %local n;  
  3.   %let n=%sysfunc(monotonic());  
  4.   _LN%sysfunc(putn(&n, z5.))  
  5. %mend;  
  6.   
  7. %put %_uname;