SASには正式なレファレンスにはどこにも載っていないけれども実装されている機能があります。
拡張エディタを操作するEDCMDもその一つです。
http://support.sas.com/kb/10/385.html
さて、話は変わって、結構多くの人が、自分用のサンプルプログラムフォルダのようなものを持っている気がします。特徴的な処理や、しばらく使わないと忘れてしまうプロシジャ、過去作ってきたたくさんのマクロ達などです。部品倉庫みたいな感じで。
そういったものを現在書いているコードに、ぺたっと張り付けたい時ってありますよね?
そういった際に、いちいちフォルダ開いて、目的のサンプルプグロラム探して、コピーして、ペーストして、サンプルプログラム閉じてって動作を面倒に感じませんか?僕は怠惰なので感じます。
なので、比較的短いものは全部キーボードマクロに登録してるのですが
(キーボードマクロとは?http://sas-tumesas.blogspot.jp/2013/10/sas.html)
一連の流れごとサンプルにしているものなどは、そもそも登録が面倒です。
そこで、僕が使っているマクロを紹介します。
%macro pgcall(NAME);
dm 'whostedit;
include "C:\sample\&NAME..sas";
edcmd selectall;
edcmd copy;
edcmd winclose;
edcmd paste'
;
%mend pgcall;
C:\sample\の部分はご自身のプログラムが入っているフォルダパスに直してください。
そして、実行したい時は、そのプログラムを張り付けたい場所に
%pgcall(merge)
として(例ではmerge.sas)というプログラムをエディタにコピペする
そして上のように行選択した状態で、実行すると、マクロの記述が消え去って、代わりに
とエディタにmerge.sasの内容が出現します。
どうでしょうか?
ちなみに、何人かにこのマクロをあげたところ、全員から「すげー使いにくい」という素敵な感想を
いただきました。
やっぱこういうのって、便利に感じるは作った本人だけってころですね。
そもそも、ちゃんとサンプルプログラムフォルダ整理してないし、名前も適当につけているから、いざ呼び出した時に、謎のコードが展開されて焦ったことも多く、やっぱり作業効率化できてないのかも、、。
0 件のコメント:
コメントを投稿