• 締切済み

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) ↓↓以下省略 (開放は行っています。)

みんなの回答

回答No.2

EXCEL 2007 固有のエラーなのでしょうね。 当方、EXCEL 2007を持っていないので検証のしようが無いのですが いろいろ調べましたら、 ↓↓↓↓↓↓↓↓↓ を見つけました。 参考にしてみて下さい。

参考URL:
http://www.happy2-island.com/bbs/bbs.cgi?mode=view&no=822
shin817
質問者

補足

参考URLを覘いてみました。 IISの意味をあまり理解してないのですが、PCは開発用に購入したネットやサーバに全くつながっていないものです。 やはりあきらめてOffice2003を手に入れるしかないんですかね…。 生産中止されてて入手できるか心配なのですが…。

回答No.1

たぶん、これでうまくいくと思います。 解放は全てのOBJECTに対して順次行ってください。 大変回りくどいですけど、これくらいしないとタスクマネージャーに ゾンビか残ってしまいます。 Dim xlApp As object dim xlBooks As object Dim xlBook As object dim xlSheets As object Dim xlSheet1 As object Try xlApp = CreateObject("Excel.Application") xlBooks = xlApp.workbooks xlBook = xlbooks.Open("C:\File\OutPutSheet_1System.xls") xlSheets = xlBook.Worksheets xlSheet1 = xlSheets(1)

shin817
質問者

補足

回答ありがとうございます。 Objectで宣言してもやはりエラーが出ます。 順番にデバックすると、xlApp = CreateObject("Excel.Application") でNothingとなり例外処理されているので、開放の問題ではないのかなと…。 あとExcel2003で問題なく動作するのもよく解らないところです。

関連するQ&A