- ベストアンサー
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ファイルを読む方法とクローズ処理の方法を 教えてください。よろしくお願いします。
- みんなの回答 (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 に任せちゃうってのもありかと思いますが。 いつかは終了しますんで。
その他の回答 (1)
- tom11
- ベストアンサー率53% (134/251)
こんにちは、 >Excel自体は閉じるのですが、プロセスは残りまます。 VBのバージョンが違いますが以下のurlが、参考になると思います。 http://homepage1.nifty.com/rucio/main/technique/teq_15.htm
お礼
どうもありがとうございました。助かりました。
お礼
どうもありがとうございました。助かりました。