- 締切済み
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) ↓↓以下省略 (開放は行っています。)
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- chibita_papa
- ベストアンサー率60% (127/209)
EXCEL 2007 固有のエラーなのでしょうね。 当方、EXCEL 2007を持っていないので検証のしようが無いのですが いろいろ調べましたら、 ↓↓↓↓↓↓↓↓↓ を見つけました。 参考にしてみて下さい。
- chibita_papa
- ベストアンサー率60% (127/209)
たぶん、これでうまくいくと思います。 解放は全ての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)
補足
回答ありがとうございます。 Objectで宣言してもやはりエラーが出ます。 順番にデバックすると、xlApp = CreateObject("Excel.Application") でNothingとなり例外処理されているので、開放の問題ではないのかなと…。 あとExcel2003で問題なく動作するのもよく解らないところです。
補足
参考URLを覘いてみました。 IISの意味をあまり理解してないのですが、PCは開発用に購入したネットやサーバに全くつながっていないものです。 やはりあきらめてOffice2003を手に入れるしかないんですかね…。 生産中止されてて入手できるか心配なのですが…。