アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB.NETで起動させたExcelの多重起動を禁止させるには?

[前提条件]
VB.NETには、「Excelを起動させるボタン」と「Excelを終了させるボタン」があるとします。
「Excelを起動させるボタン」によって既存のExcelファイルを起動させ、
「Excelを終了させるボタン」によって起動中のExcelファイルを終了させたいと思います。

Excelを起動している最中は、VBとExcelとでデータの受け渡しをします。


[問題・課題]
この方法ですと、「Excelを起動させるボタン」を押下するたびに、同じ既存のExcelファイルを多重起動されてしまいます。

ネット上にある参考文献を調べると、ひとつの関数(?)内で
アプリケーション open ⇒ データの吸出し  ⇒ アプリケーション close
となっていました。

[前提条件]で述べている使い方で、実現可能な方法があれば教えてください。
(参考になりそうなWebアドレスだけでも構いません)


以上、よろしくお願いします。

A 回答 (3件)

 こんばんは、No.1です。


>何とか、識別をしているようです。
お、いけそうですね。
>ところで、最後の行
>MRComObject(ProGet)
>は、何ですか?
VB花ちゃんにのっています。
↓のアドレスのExcel・Word・他(30)の中
http://hanatyan.sakura.ne.jp/dotnet/index.html
Excelのプロセス開放コードです。

>それと、質問漏れをしていましたが、Excelのプロセスを開放する方法を御存知でしたら、教えてください。
沢山あるので、ここでは少し難しいですねー。。
 一瞬で手に入るスキルでもないので、下の順序で進めるのがおそらく
一番早いかも。

 まずは宣言の書き方をミスった時点でアウトになるので、上のページにある
宣言方法にすべて書き直して下さい。
 次に宣言文以外のコードをすべて消す→実行
     →解放されなければ宣言文再確認 or ここに新規質問で再投稿

 解放されるようになったら、宣言以外のコードを少しずつ加えていって、
都度解放確認。

 あと、VB中学校
http://homepage1.nifty.com/rucio/main/technique/ …
も丁寧にまとめて下さっているのでお勧めです。

 頑張ってb
    • good
    • 0
この回答へのお礼

御丁寧な回答に、感謝します。

デバッグモードで、MRComObjectの行を実行しても終了しなかったので
困っていました。

これで、プロセス終了まで出来る様になりました。

重ねて、感謝します。

お礼日時:2010/07/09 11:33

少しでも参考になればと思います。



参考URL:http://www.atmarkit.co.jp/fdotnet/dotnettips/145 …
    • good
    • 0
この回答へのお礼

ありがとうございます。

mutexを試してみましたが、Excelを認識してくれませんでした。
単に、私の組み込み方が悪かったかもしれません。


情報提供に、感謝します。

お礼日時:2010/07/08 10:41

 こんにちは。

Excelが起動しているかどうかを調べる、とかはありでしょうか?

    Dim ProGet As Object = Process.GetProcessesByName("EXCEL")
    If ProGet.Length > 0 Then
      Msgbox("起動しているExcelを終了してから再度実行してください。")
      Exit Sub
    End If
    MRComObject(ProGet)
少しでもお役に立てば。

この回答への補足

ありがとうございます。

何とか、識別をしているようです。
ところで、最後の行
MRComObject(ProGet)
は、何ですか?

当方のVBでは、認識されませんでした。


それと、質問漏れをしていましたが、Excelのプロセスを開放する方法を御存知でしたら、教えてください。

補足日時:2010/07/08 10:38
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!