• ベストアンサー

VisualBaic2005でExcelファイルを読む方法

Dim oExl As Excel.Application Dim WorkBookName As Excel.Workbook Dim Open_WorkSheet_Name As Excel.Worksheet oExl = CreateObject("Excel.Application") WorkBookName = oExl.Workbooks.Open("d:\book011.xls", , False) この時点でExcelのファイルが開きません。 また、oExl.Visible = True を実行するとExcel自体は開くのですが、ファイルのオープンは できません。また、終了時に oExl.Workbooks.Close() oExl = Nothingを実行すると Excel自体は閉じるのですが、プロセスは残りまます。 VB2005からExcelファイルを読む方法とクローズ処理の方法を 教えてください。よろしくお願いします。

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

  • ベストアンサー
回答No.2

プロセスが残る件については Excel の各オブジェクトをきちんと変数に参照していないからだと思います。 VB.NET や C# から Excel をコントロールしていて Excel のプロセスが残ってしまう現象については大体どこのサイトのサンプルにも書いてあるかと思います。 コード中に出てくる全ての Excel 関連オブジェクトは必ず変数で参照をし、必ず開放してあげなくてはいけません。 http://www.google.com/search?num=50&hl=ja&q=vb.net+excel&lr=lang_ja 上記コードで言えば WorkBookName = oExl.Workbooks.Open("d:\book011.xls", , False) これの「Workbooks」がダメ。 Dim oBooks As Excel.Workbooks oBooks = oExl.Workbooks WorkBookName = oBooks.Open("d:\book011.xls", , False) のように、Excel.Workbook のコレクションである Workbooks もきちんと変数で参照しないとダメです。 他にうっかり忘れやすいところでは Worksheets、Cells など、コレクションですかね。 まぁ実装するのがかなり面倒になると思いますので、プロセスの終了は GC に任せちゃうってのもありかと思いますが。 いつかは終了しますんで。

ringocyan
質問者

お礼

どうもありがとうございました。助かりました。

その他の回答 (1)

  • tom11
  • ベストアンサー率53% (134/251)
回答No.1

こんにちは、 >Excel自体は閉じるのですが、プロセスは残りまます。 VBのバージョンが違いますが以下のurlが、参考になると思います。 http://homepage1.nifty.com/rucio/main/technique/teq_15.htm

ringocyan
質問者

お礼

どうもありがとうございました。助かりました。

関連するQ&A