tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルExcelサンプルコード
記事No4939
投稿日: 2007/02/02(Fri) 16:01
投稿者じゃます
.NETからExcelの基本的な操作方法の1.MicroSoft Excelを起動(新規ファイルを開く)のサンプル
を使用してExcelファイルを新規に作成し、書き込み、保存するプログラムを書いています。

サンプルコードの通りにコードを書きましたが、
Dim xlsSheets As Excel.Worksheets = xlsApp.Worksheets
Dim xlsSheet As Excel.Worksheet = xlsSheets.Item(1)
以上の2カ所に警告が発生します。
内容は明示的に型変換を行えというものでしたので、
Dim xlsSheets As Excel.Worksheets = CType(xlsApp.Worksheets, Excel.Worksheets)
Dim xlsSheet As Excel.Worksheet = CType(xlsSheets.Item(1), Excel.Worksheet)
のように型変換を行い、実行すると上記の部分でエラーが発生します。

エラー内容は
型 'System.__ComObject' の COM オブジェクトをインターフェイス型 'Microsoft.Office.Interop.Excel.Worksheets' にキャストできません。IID '{000208B1-0000-0000-C000-000000000046}' が指定されたインターフェイスの COM コンポーネント上での QueryInterface 呼び出しのときに次のエラーが発生したため、この操作に失敗しました: インターフェイスがサポートされていません (HRESULT からの例外: 0x80004002_NOINTERFACE))。
と、なります。
変数の型とCTypeで明示的にした型が違うのだろうとあたりをつけているのですが、対策がわかりません。
対策法をお教えください。

環境はWindowsXP Pro
VB.NET 2005 SP1
Excel2003 SP2
COMオブジェクトはMicrosoft Excel 11.0 Object Libraryです。
そのほか、ODP.NETとBASP21も参照しています。よろしくお願いします。

[ツリー表示へ]
タイトルRe: Excelサンプルコード
記事No4940
投稿日: 2007/02/02(Fri) 16:24
投稿者花ちゃん
> Excel2003 SP2

Excel 2003 をお使いなら、下記の過去ログの参照して下さい。
因みに、Excel 2007 なら互換モードで動作するのでExcel 2002 用のプログラムでも
エラーは出ずに動作します。

No.4361  No.4012  NO.2681   NO.1490  その他 ワード検索で Excel 2003 で検索
すれば、色々情報が見つかります。

[ツリー表示へ]
タイトルRe^2: Excelサンプルコード
記事No4945
投稿日: 2007/02/03(Sat) 09:15
投稿者じゃます
1490のように書き換えたところ、動作しました。
ありがとうございました。

[ツリー表示へ]