SASの右クリックシェルメニューをカスタマイズする
さて、SASをお使いの皆様はいかにしてSASを起動していますか。
どうやってプログラムをロードしていますか。
sasプログラムを右クリックして開く、ダブルクリックで開く、SASを起動してプログラムをopenする、
色々あると思いますが、ちょっと待って…
右クリックメニューの印刷とかいる?
これで間違って印刷したことある人はいても、プログラムをこれで印刷する人ってあんまりいないんじゃないでしょうか。
(使ってる人いたらゴメンナサイ)
というわけで今日は右クリックメニューのカスタマイズを。
まず、これをやるにはレジストリをいじるので、
・管理者権限がない
・レジストリいじるの怖い
という人には残念ながら無理です。
管理者権限があって、レジストリいじってみる、という方はまず、レジストリエディタを起動しましょう。
Windowsメニュー→regedit
次の場所まで移動します
\HKEY_CLASSES_ROOT\SAS.Program.701\shell
この「SAS.Program.701」というのが拡張子「.sas」に関連付けられたものになります。
よく見てみると、
OpenとかPrint、PrintToとかいうメニューがありますね。
ここのPrintとPrintToを削除しちゃいましょう。
右クリックで削除です。えいっ。
これでsasプログラムを右クリックしたときのメニューから「印刷」、「SAS9.4で印刷」が消えてくれます。
せっかくなのでもう少しいじってみましょう。
SASは起動時のウィンドウレイアウトを保存する機能があります。
「ツール→オプション→プリファレンス→終了時の設定を保存する」です。
これにチェックが入っていると、終了時のレイアウトそのままに次回も起動してくれます。最大にしておけばもちろん最大サイズで。
しかしながら、ダブルクリックもしくは開くメニューでSASを起動すると、SASのウィンドウサイズが最大にはなりません。
(環境によるかもしれませんが)
レジストリを見ればわかると思いますが、開くメニューで起動されているアプリケーションファイルはsas.exeではなく、sasoact.exeという実行ファイルです。
(多分SAS Ole ACTionとかそんな感じ)
最大化できないのはsasoact.exeの仕様だそうなので諦めて、最大で開けるような設定に変えてしまいましょう。
まず、HKEY_CLASSES_ROOT\SAS.Program.701\shell\Open\commandキーの既定をダブルクリックします
データに次の文字列を設定します
"C:\Program Files\SASHome2\SASFoundation\9.4\sas.exe" -config "C:\Program Files\SASHome2\SASFoundation\9.4\SASV9.CFG" -initstmt "dm 'awsmaximize on;include ''%1'' ';""
それぞれの説明をしていきます。
まず、
"C:\Program Files\SASHome2\SASFoundation\9.4\sas.exe"
については言わずもがな、sasの本体です。
続いて、
-config "C:\Program Files\SASHome2\SASFoundation\9.4\SASV9.CFG"
これは、デフォルトのsasの構成ファイルを読み込むように指定しています
-initstmt
"dm 'include ''%1'' ';"
dmステートメント(DMステートメント)では、SASのアプリケーション自体のコントロールをすることができます。
include %1
で開くメニューで受け取ったファイル名が引き渡されます。
つまり、SASを起動直後にdmステートメントでsasプログラムを読み込ませる、という設定です。
こうすることで、右クリックの開くメニューもしくはダブルクリック時に、通常通りSASを起動したのと同じウィンドウサイズで起動することができます。
さらには、32bitと64bitが同居している環境で、指定のsasを起動できるというメリットがあります。
sasoact.exeではデフォルト指定された側のsasしか起動できませんので、これは結構大きいのではないでしょうか。
ちなみに、「sas9.4でサブミット」というメニューもsasoact.exe経由で起動するため、ウィンドウサイズが通常利用しているものと異なる可能性があります。
こちらはHKEY_CLASSES_ROOT\SAS.Program.701\shell\Submit940\command の既定データを以下のように変更します
"C:\Program Files\SASHome2\x86\SASFoundation\9.4\sas.exe" -autoexec "%1" -config "C:\Program Files\SASHome2\x86\SASFoundation\9.4\SASV9.CFG"
異なるのは
-autoexec "%1"
ですね。
autoexec は指定したプログラムを起動直後に実行してくれます。
バッチサブミットと違うところは、SASは起動したままなので、データセットの確認や、その後の作業等が継続してできるという点です。
(厳密にはもう少し違いがあるのですがここでは省略)
ちなみに、私のPCは32bit版と64bit版が同居しているのでこんな感じになっています。
デフォルトが64bitなので、デフォルトのOpenキーに64bit版を割り当てており、64bit用と32bit用の順番がちょっとずれてますが、ご愛嬌。