• ベストアンサー

CreateObjectで作成したExcelのプロセスを終了させたい。

VBからCreateObjectで作成したExcelのプロセスを終了させたいと考えています。 困っている点として、CreateObjectで作成したときにプロセスIDをどのように取得すれいいのかという点です。 宜しくお願いします。 環境 VB6.0+SP5 Windows2000+SP2 Excel2000

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

  • ベストアンサー
  • SUZUYUU
  • ベストアンサー率33% (2/6)
回答No.1

VB5では、これでいいはずです。VB6でも同じでは?! Dim ExcelObj As Excel.Application : : Set ExcelObj = CreateObject("Excel.Application") : : ExcelObj.ActiveWorkbook.Close (False) ExcelObj.Quit Set ExcelObj = Nothing

mar0325
質問者

補足

回答ありがとうございます。 VBからExcelを起動する場合、SUZUYUUさんが書かれた記述が基本的な書き方です。 私のしたいことは Set ExcelObj = CreateObject("Excel.Application") の後にWorkbookをopenあるいはaddしたときに発行されるPID(プロセスID)を取得したいのです。 Shell起動をしたとき、戻り値を利用したPIDの獲得はわかったのですが、、この記述でしたときにどのようにPIDを獲得すれば良いのか調査中です。 もしご存知であればご教授ください。

関連するQ&A

  • プロセスIDの取得方法について

    下に同様の質問をしたのですが、削除方法分からない為、再度質問させていただきまし。 VB5.0を利用しています。 VBで書いたexeを実行した際に、そのプロセスID(自分の)は、GetCurrentProcessIdを利用すれば取得できると分かりました。 が、プログラム内でExcelを下記の様にオブジェクトを作成した場合、そのプロセスIDをどうやって取得すればいいのでしょうか? ご存知の方居ましたら、教えて下さい。 Set ExcelObj = CreateObject("Excel.Application") ここで起動?されたExcelのプロセスIDを取得したいのですが。

  • excel2010でのCreateObject

    OS:Windows7Pro Office:オフィス2010 Excel2007で作成したメール一括送信プログラムがExcel2010でエラーが発生します。 CreateObject メソッドを使用して Outlook Application オブジェクトを作成する際に 「実行時エラー'429' ActiveXコンポーネントはオブジェクトを作成できません。」 と表示されます。デバッグ画面では Dim myOLApp As Object Dim myDATA As MailItem '### OUTLOOKのオブジェクトを作成後、メールを新規作成する。 Set myOLApp = CreateObject("Outlook.Application")   Set myDATA = myOLApp.CreateItem(olMailItem) の Set myOLApp = CreateObject("Outlook.Application")  この部分でエラーになっています。 VB6.0SP6ランタイムのインストールをしましたが状況は変化しません。 Excel2007では正常に動作します。 どこを修正すればよいのでしょう? ご教授いただけると幸いです。宜しくお願いいたします。

  • Excelがインストールされてない環境でのExcelインスタンス作成

    Set xlApp = CreateObject("Excel.Application") xlApp.Visible = False xlApp.ScreenUpdating = False xlApp.DisplayAlerts = False Set xlBook = xlApp.Workbooks.Add Set xlClone = xlApp.Workbooks.Open("C:\TEMPLATE.xls") xlClone.Worksheets("Sheet1").Copy After:=xlBook.Sheets(1) 以上のようにVB上からExcelインスタンスを作成し xlBookにxlCloneのシートをコピーしています。 作成した.exeをExcelがインストールされている環境では動作するのですがExcelがない環境ではエラーになってしまします。 ライブラリをおくなど、Officeをインストールしないで済む方法はありますでしょうか?VBにはExcel Object Liblalyが参照設定されてます。 Excelあり環境 Visual Basic6 SP6 WindowsXP SP2 Office2003 SP4 Excelなし環境 Windows Server2003 SP2

  • CreateObjectでエラー発生(Excel2007が悪い?)

    下記の環境、プログラムで"ActiveXコンポーネントを作成できません。"のエラーが出て困っています。 毎回ではなく、「1回目はエラーで、2回目以降は出ない」「たまに出る」など、動作が一定ではありません。 Excel2003では問題なく動作するので、Excelのバージョンを変更しようかとも考えています。(高価で入手しにくいので踏み切れずにいます。) Excel2007とVBの問題なのでしょうか? プログラムの変更で解決すればいいのですが…。 ご教示ください! ****** 環境 ****** OS:WindowsXP Professional Ver.2002 SP2 (Microsoft .NET Framework 2.0 Configuration) Excel:Microsoft Office Excel 2007 言語:VB2005 SP1 参照先:Microsoft Excel 12.0 Object Library ****** プログラム ****** Dim xlApp As Microsoft.Office.Interop.Excel.Application Dim xlBook As Microsoft.Office.Interop.Excel.Workbook Dim xlSheet1 As Microsoft.Office.Interop.Excel.Worksheet Try xlApp = CType(CreateObject("Excel.Application"),Microsoft.Office.Interop.Excel.Application) xlBook = CType(xlApp.Workbooks.Open("C:\File\OutPutSheet_1System.xls"),Microsoft.Office.Interop.Excel.Workbook) xlSheet1 = CType(xlBook.Worksheets(1),Microsoft.Office.Interop.Excel.Worksheet) ↓↓以下省略 (開放は行っています。)

  • EXCELのプロセスが残ってしまう

    VBからExcelを起動し、ごく稀にExcelのプロセスが残ってしまう場合があります。全く同じ条件で実行した場合、残る時と残らない時とありを悩ませています。 いろいろな対策方法が検索できましたが、解決しませんでした。 また、このようにExcelプロセスが残った際、IISの動作がおかしくなっているのか、「CGIエラー」を返します。ただし、exeなど実行系ファイルを実行せず、XXX.HTMなどは表示できます。 VBで記述したexeは、CGI系のアプリとしてブラウザから実行されています。 対処方法ご存知でしたら、教えて下さい。 環境 NT4サーバ+SP6a Excel97 VB5.0

  • EXCEL終了後にたまにプロセスが残っている。

    最近、EXCEL終了後にたまにプロセスが残っている状態になり、使用が不便になりました。 ネットで検索すると、VBを使用後にそのような現象になる場合があるそうですが、VBは使用していません。なるようになった原因は解りませんがせんが、現在の状態を解消する方法をご存知の方は、いらしゃらないでしょうか。 宜しくお願いします。 office2000を使用しています。 windows xp

  • EXCELのプロセスを終了させたい!!

    VBAで、EXCELファイルを出力するという処理を書いています。 エクセルオブジェクトを解放するロジックは書いたものの、タスクマネージャを見るとエクセルのプロセスが残ってしまっています。すると、VBの実行中だと作成したエクセルファイルを見ることができません。(T_T) VBの実行中でも、作成したエクセルファイルを見れる状態にしたいのですが、一体どうしたらいいんでしょうか?? ソース内では、RANGEとCELLSプロパティを使ってるんですが、これらの使い方がなにかまずいのでしょうか。。。 どなたか、どうか教えてください。よろしくお願いします。_(._.)_

  • CreateObjectできるものについて

    お世話になります。 VB6でファイル操作をする時に、 CreateObject("Scripting.FileSystemObject") としています。 最近、OSのバージョンを取得する CreateObject("SysInfo.SYSINFO") というものがあるのを知りました。 そこでなのですが、 CreateObjectできるオブジェクト(?) はどのようなものがあるのでしょうか? 一覧と、できればメソッド一覧が載っている HP等はありませんでしょうか? どなたかご存知の方、宜しくお願いいたしますm(_ _)m Env.. Win2000 + VB6 From mitsu_124

  • VB6.0上でExcelオブジェクトを生成

    質問です。 VB6.0上でExcelオブジェクトの生成についてです。 その1 Dim xlApp As Excel.Application … Set xlApp = CreateObject("Excel.Application") と その2 Dim xlApp As Object … Set xlApp = CreateObject("Excel.Application") と、どちらが良いのでしょうか? 開発環境は Win XP SP2 VB 6.0 Excel 2003 実行環境は Win 98 SE VB 6.0(ランタイムのみ) Excel 2000 SR-1 です。 開発環境ではその1、その2ともOKなのですが、 実行環境ではその2のみがOKです。 参考書にはその1が書かれていますが、その2を使うことによって何か不具合や都合の悪いことが起こりうるのでしょうか? あるいは当方の見当違いで根本的に何かが間違っているのでしょうか? どんな些細なことでも結構ですので宜しくお願いします。

  • プロセスIDに対応したファイルのフルパスの取得

    ネットワーク上の他PCのプロセスIDとフルパス(モジュール名)の取得の仕方を教えてください。 開発環境は OS:windows xp pro SP2 <- 全てのPC visual studio.net 2003 です。 現在vb.netでプロセス監視アプリの作成をしています。 他PCのプロセスは ManagementObjectSearcher で 取得することができました。 自PCのモジュール名(フルパス)はGetModuleFileNameEx(VB6.0)で取得できましたが、他PCの場合うまくいきません。 よろしくお願いします。

専門家に質問してみよう