« Excelの設定変更の振る舞いについて | トップページ | Excelファイルをコマンドラインで印刷する。 »

2007年2月24日 (土)

Excelファイルの関連付けで、DDEを使わないようにする。

Excelファイルの関連付けは、DDEを使用していますが、これはトラブルの元です。

「開く」は、DDEを使わないようにできますが、「印刷」はどうするか?

「開く」
"~\EXCEL.EXE" "%1"

WorkBooks.Open(ファイル)に相当します。

「新規」
"~\EXCEL.EXE" /n "%1"

WorkBooks.Add(ファイル)に相当します。

元の関連付けにあった /e オプションは、起動時にブック指定がないとき、デフォルトの Book1 などを開かないことを指示します。

「印刷」
MSHTA.EXE vbscript:Execute("Set xl=CreateObject(""Excel.Application""):xl.AutomationSecurity=2:Set bk=xl.WorkBooks.Open(""%1""):bk.PrintOut:bk.Close:Set bk=Nothing:xl.Quit:Set xl=Nothing:resizeTo 0,0:close:")

または、

WScript.exe "~\ExcelPrint.VBS" "%1"

「PrintTo」
MSHTA.EXE vbscript:Execute("Set xl=CreateObject(""Excel.Application""):xl.AutomationSecurity=2:Set bk=xl.WorkBooks.Open(""%1""):Call bk.PrintOut(,,,,""%2""):bk.Close:Set bk=Nothing:xl.Quit:Set xl=Nothing:resizeTo 0,0:close:")

または、

WScript.exe "~\ExcelPrintTo.VBS" "%1" "%2"

元の動詞は「~2」に変えて、メニュー名を「DDEで~」に変えて、
文字列値extendedを付けておけば、シフトキー+右クリックメニューで使えます。

« Excelの設定変更の振る舞いについて | トップページ | Excelファイルをコマンドラインで印刷する。 »