• ベストアンサー

Excelが起動しているかを通知する方法

お世話になります、現在VBで開発を行っているのですが、 VBからExcelを起動して、VB側でそのExcelが開いているか、閉じているかを知る方法を探しています。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.2

APIを使用するなら、ysk6406さんが言われたとおりプロセスを使用する方法があります。 VBの関数の[GetObject]を使用する方法もあります。   Dim xlsApp As Object      On Error Resume Next   Set xlsApp = GetObject("", "Excel.Application")   On Error GoTo 0   If xlsApp Is Nothing Then     MsgBox "起動してない"   Else     MsgBox "起動してる"   End If

その他の回答 (1)

  • ysk6406
  • ベストアンサー率40% (237/589)
回答No.1

いくつかやり方があると思いますが… GetExitCodeProcess という API を使えば、できると思います。 参考URLにサンプルコードが出ていますので、ご参照下さい。

参考URL:
http://www.geocities.co.jp/SiliconValley/4805/vbtips/vbtips052.htm

関連するQ&A

  • VB6 からEXCEL起動をブロックする方法

    VB6を使用してEXCELを開き色々コントロールするプログラムを作成したのですが、EXCELをプログラムからでなく、単独で起動してしまうとVB6から開いたEXCELのコントロールに悪影響を与えてしまうようです。 そこで、VB6で作成するプログラムの中にEXCELを単独で起動出来ないようにブロックするコードを入れられないかと考えています。 良い方法がありましたらご教授下さい。

  • VB6.0からエクセルを起動

    現在VBとVBAの勉強をしているのですが、VB6.0からエクセルを起動する際に、エクセルにはVB6.0から引数を渡したいのですがどうすれば良いでしょうか? どなたか、ご存じの方が居ましたら教えてください。

  • VB2005 起動したエクセルの待機でエラーになります

    VB2005で開発中です。 エクセルを起動し、エクセルの処理が終わるまで待機をさせているのですが、既にエクセルのBOOKが開いていると、待機の状態のところでエラーになります。 具体的には Dim Proc As New Process Proc.Startinfo.Filename = "C:\EXCELSHEET.XLS" Proc.Start() Proc.WaitForExit() ←ここでエラー エラー内容は「このオブジェクトに関連付けされているプロセスはありません」です。 vb2005の起動の前に、エクセルを起動させていなければエラーは出ませんが、何か既にエクセルの表を開いているとエラーになります。 既に開いているエクセルの表は、vb2005から閉じたりする作業はしたくありません。開いているままでvb2005で新たに表を開きたいです。 よろしくお願いします。

  • VC++でExcelファイルを扱う方法

    VC++アプリケーションの開発を行っているのですが、VBでExcelファイルを扱うようにVC++でも扱うことはできるのでしょうか? できるのであれば、その方法をぜひ教えていただきたいのですが・・・ 開発環境は、VC++ Ver6.0 Excelは2000を使用しています。

  • Excelがセーフモードで起動してしまう

    開発環境、XP Pro、Office 2003 Pro、VB6 実行環境 XP、Office 2003 VBからExcelに結果を出力するプログラムを組んで、数台で動作していたのですが、1台だけ、その作成したプログラムを起動すると。 Excelがセーフモードで起動しようとします、選択するボタンは、はいといいえしかなく、いいえをおすと、プログラムが落ちてしまい、はいを押すと、セーフモードで起動しているので一部機能がつかえませんとメッセージが出て落ちてしまいます。 その後、不正な処理・・・、マイクロソフトに送信しますかというメッセージが出てきます。 その一台だけがおかしいので、Excelのブックを起動すると問題なく起動します。 プログラムでは、起動時には、Excelを起動するように組んでないのですが、起動時Excelが起動しようとします。 以前も他のパソコンであったので、その時は、Excelを再インストールしたら直りました。 (自動修復では直りませんでした) 今回もExcelを再インストールしないと直らないのでしょうか?

  • ExcelのないPC、VB.NET作成のフォーム上でExcelを表示す

    ExcelのないPC、VB.NET作成のフォーム上でExcelを表示する 現在、Windows 7 Professional、VS2008で開発してます。 ExcelのないPCにVBで作成したアプリのフォーム上に Excel帳票を表示させる事は出来るでしょうか? Excelの帳票には画像とかが貼り付けてあります。 Excelを買えば…という事を言われるかもしれないですが 端末数が多いためExcelを購入する/しないで値段もかなり変わってきます。 また、ExcelViewerをVBから起動するという方法もありますが 出来るだけ1つのフォーム上での表示という事なので・・・ かなり厳しい環境ですが何かしら情報があればご提示願います。

  • VB.NETからエクセルを起動して、エクセルでVBを閉じたい。

    こんにちは。 先日、エクセルのフォームを最前面に配置したいという 質問をさせて頂いたものでございます。 それで、SetWindowPosのAPIで設定する方法を教えて頂いたのですが、 最前面にする事は出来たのですが、フォームを動かすと ブックはその一つ下に現れてしまい、 ブックを最背面に配置するなどを試みてみたのですが、 どうもうまく行かないので、 エクセルから直に立ち上げることが出来ないようにして VB.NETのフォームを作ってエクセルにデータを送ろうかと思いました。 それで、データを送る方法は何とかなりそうなのですが、 VB.NETのフォームからエクセルを起動して、 次にエクセルからそのフォームを出したり、隠したりしたいのですが、 その場合、VB.NETのフォームのなんと言うハンドルを取得すればよいでしょうか? IDにも色々あるようで、どれを使えばよいのか分からなくなってしまいました。 そのIDはVBのフォームを起動した時に、エクセルと共有するiniファイルなどに、書き込んでおこうかと思っています。 よろしくお願いいたします。m(__)m

  • VBにて起動アプリの取得

    VB6.0にて開発しています。 自分の端末でEXCELを使用している際 どのブックを開いているかVB側にて取得 する方法を教えて下さい。 現状)VBからあるフォルダのBOOKを コピーし、そのBOOKにデータを 貼り付けています。しかし他のBO OKを開いているとメモリエラーが 起こります。その為EXCELが立 ち上がっていたら警告を出そうと思 います。

  • VB2005.NETプログラムから、エクセル2007へのマクロ実行を無効にしたい。

    <PC1 動作環境> ・OS :Vista Business ・ソフト:office2007 Excel <PC2 動作環境> ・OS :Vista Ultimate ・ソフト:office2007 Excel <目的> VB2005.NETで開発したプログラムから、 エクセルのセルに値を入れるソフト開発しており、 エクセル側にマクロを仕込み動かしています。 VB側から、エクセルのマクロを動かしたくない場合があります。 セキュリティセンター⇒マクロの設定⇒警告を表示して全てのマクロを無効にするを選択しました。 <問題> PC1では、VB側から、エクセルのマクロが実行できなくなりますが、 PC2では、VB側から、エクセルのマクロが実行できてしまう。 PC2でも、VB側から、エクセルのマクロを実行しないようにしたいのですが、どなたか解決方法を知っている方いませんでしょうか。 宜しくおねがい致します。

  • VBからExcelに書き込む方法

    こんにちは。VB6.0(SP5),Excel2000,Win2000でVBの勉強をしています。 VBでコマンドボタンを押した時に、テキストボックスのデータを、Excelに書き込みたいと思っています。 特定のExcelに書き込むことは「GetObject」で出来たのですが、名前がわからない場合はどうしたらよいのでしょうか? ※ExcelはVBから起動したものではなく、人が任意のファイルを起動しています。Excelの名前はわかっていません(任意なので、何かわかりません) このような場合に、VBから書き込むのは可能なのでしょうか? よろしくお願いします。