openbyshell についてNo.00483
tsurupin さん 99/04/07 12:31
 
こん▽△は。はじめまして。tsurupin と申します。

具体的に言いますと、Excelで作ったファイル(AAA.xls)を秀丸のマクロの中から実行
しようと思い

//
// ----- マイドキュメントのパスを取得 ----------------------
//
openreg "CURRENTUSER","Software\\Microsoft\\Windows\\CurrentVersion\\Explor
er\\Shell Folders";
$my_doc_path = getregstr("Personal");
closereg;
//
// ----- MS-Excel97 を開く ---------------------------------
//
openreg "LOCALMACHINE","SOFTWARE\\Microsoft\\Office\\8.0\\Excel\\InstallRoo
t";
$excel_path=getregstr("Path");
closereg;
$excel_path = $excel_path + "\\excel.exe";
$aaa_path = $my_doc_path + "\\AAA.xls";
$run = $excel_path + " " + $aaa_path;
run $run;
exit;

だとうまくいかなくて…

run "C:\\Program Files\\Microsoft Office\\Office\\Excel.exe C:\\My Documents
\\AAA.xls";

みたいな感じで記述しましてもうまく起動できません。
実行ファイルの後ろに書く開きたいファイルは8.3形式で書かないとだめみたいで
す。
これは Windows のショートカットも同様なので Windows の問題のような気もします
が…
そこでマクロヘルプを見たら openbyshell  (…を開く)というのがあり、これはきっ
とファイルを指定すれば関連付けされているアプリから開けるもんだと思い、これを
使おうと思ったんですが使い方に関する記述がされていなくて適等に

openbyshell"C:\\My Documents\\AAA.xls";
openbyshell("C:\\My Documents\\AAA.xls");
openbyshell"C:\\Mydocu~1\\AAA.xls";

とか思いついた事をやってみたんですが文法エラーですとのメッセージが出てうまく
いきません。
上記のような場合の対策とか openbyshell の使い方を教えてください。
よろしくお願いします。

[ ]
RE:00483 openbyshell についてNo.00484
ひろ さん 99/04/07 14:09
 
 tsurupin さん今日は、ひろです。
> run "C:\\Program Files\\Microsoft Office\\Office\\Excel.exe C:\\My
Documents
> \\AAA.xls";

run "\"C:\\Microsoft Office\\\\Excel.exe\""+" \"C:\\My Documents\\AAA.xls\""
;
というように、log file name に対応させるために「\"」をつかうと如何で
しょうか?
 また application と開く file は別々に記述しないと上手くいかないよう
です。なぜだろう???

> そこでマクロヘルプを見たら openbyshell  (…を開く)というのがあり、これはきっ
> とファイルを指定すれば関連付けされているアプリから開けるもんだと思い、これを
> 使おうと思ったんですが使い方に関する記述がされていなくて適等に
 openbyshell はこういった使い方をする関数ではありません。秀丸で開い
た file 中に file name が書いてある場合、その file を関連付けされた
application で開くためのもので、tag jump の拡張のようなものです。

[ ]
RE:00483 openbyshell についてNo.00485
さが美 さん 99/04/07 14:42
 
>run "C:\\Program Files\\Microsoft Office\\Office\\Excel.exe C:\\My
Documents
>\\AAA.xls";

  単に関連付けされているファイルを開きたいだけなら、Windows付属のDOSコマンド
の START を使って

run "START.EXE C:\\My Documents\\AAA.xls";

 と、やればよさそうなんですが、ファイル名に空白が入っていた時の扱いはよくわ

らないので、参考程度にどうぞ。



[ ]
RE:00484 openbyshell についてNo.00486
tsurupin さん 99/04/07 15:12
 
ひろさん、さが美さんはじめまして。
まとめレスでごめんなさい。

なんか、馬鹿丸出しな質問でもあるにもかかわらず、丁寧な返答をありがとうござい
ました。
ひろさんの方法で解決できました。ありがとうございました。

openbyshell なんですが、見当違いもはなはだしいにもかかわらず教えていただきあ
りがとうございました。
これでまた一つお利口になりました。(^_^;)

またわからない事があった時はよろしくお願いします。m(_._)m


[ ]