エクセルが起動中か?調べるにはNo.03975
haru さん 03/11/25 21:31
 
 http://www.maruo.co.jp/hidesoft/4/m020922.html#3400

 以前にも、同じ投稿をしたのですが、コメントを頂けませんでした。
 今回は、御存知の方が見ているかもしれないと思い、再投稿します。
 秀丸からエクセルを起動しているんですが、エクセルが起動中か
どうかを調べたいのですが、可能ですか?
 よろしくお願いします。

 エクセルの掲示板で質問したところ、やはり、呼び出すソフト側
(今回は秀丸)の問題ということでした。

[ ]
RE:03975 エクセルが起動中か?調べるにはNo.03976
でるもんた さん 03/11/25 21:49
 
秀丸ユーザーのでるもんたです。

>  秀丸からエクセルを起動しているんですが、エクセルが起動中か
> どうかを調べたいのですが、可能ですか?
>  よろしくお願いします。
>
>  エクセルの掲示板で質問したところ、やはり、呼び出すソフト側
> (今回は秀丸)の問題ということでした。

起動中かどうかの確認だけだったら、DDE でできるような気がします。
ddeinitiate "EXCEL", "SYSTEM";
を実行して result を見る、という手順でしょうか。

残念ながら、私の手元のマシンには Excel が入っていないので確認ができない
のですが…。

なお、その先のことを DDE で動かしたければ、Excel 側でどんな DDE コマンド
を受け付けるのかを Excel のヘルプで探すとか、Google で「Excel DDE」をキー
ワードに検索するとか、そういう方向になると思います。

[ ]
RE:03976 エクセルが起動中か?調べるにはNo.03977
h-tom さん 03/11/25 23:15
 

h-tom です。

>起動中かどうかの確認だけだったら、DDE でできるような気がします。
>ddeinitiate "EXCEL", "SYSTEM";
>を実行して result を見る、という手順でしょうか。
>
>残念ながら、私の手元のマシンには Excel が入っていないので確認ができない
>のですが…。
でるもんたさんの方法でOKでしたよ。
環境はWindows2000 + Excel2000です。

ddeinitiate "EXCEL", "SYSTEM";
if(result){
    message "excelは起動中です。";
    ddeterminate;
}else{
    message "excelは起動していません。";
}

Excelのバージョンが違ってもファイルタイプでxlsの設定を見て、DDEの項目と
同じにすれば大丈夫だと思います。

あとはfindwindowclassでExcelを探すって方法もあります。
ウィンドウクラス名を調べるツールが必要ですが、Vectorで探せば見つかるで
しょう。

if(findwindowclass("XLMAIN") != 0){
        message "excelは起動中です。";
}else{
        message "excelは起動していません。";
}

[ ]
RE:03977 エクセルが起動中か?調べるにはNo.03978
haru さん 03/11/26 10:23
 
>ddeinitiate "EXCEL", "SYSTEM";
>if(result){
>  message "excelは起動中です。";
>  ddeterminate;
>}else{
>  message "excelは起動していません。";
>}
 ありがとうございます。
 前々からの懸案事項が解決できました。

[ ]