C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: エクセルの参照方法


(過去ログ 66 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■38290 / inTopicNo.1)  エクセルの参照方法
  
□投稿者/ あ (48回)-(2009/07/10(Fri) 16:06:51)

分類:[.NET 全般] 

はじめまして。

VB.netで、プログラミングの勉強をしています。

エクセルのセルの値を参照し、取得するために、参照の追加で、
エクセル2007のみ対応されてしまうのを防ぐために、
(エクセル2000やエクセル2003などの環境でも動作させるため)、

Microsoft Excel 12.0 Object Liblary を追加せずに、

CreateObject("Excel.Application")
で、エクセルを参照させたいとおもっていたのですが、

Dim app As New Microsoft.Office.Interop.Excel.Application
Dim book As Microsoft.Office.Interop.Excel.Workbook
Dim sheet As Microsoft.Office.Interop.Excel.Worksheet

を行ったところ、Microsoft.Office.Interop.Excel.Applicationが定義されていません。
というエラーがでるのですが、
Microsoft Excel 12.0 Object Liblary を追加させずに、
エクセルのセルの値を取得する方法はないでしょうか?

引用返信 編集キー/
■38292 / inTopicNo.2)  Re[1]: エクセルの参照方法
□投稿者/ 魔界の仮面弁士 (1148回)-(2009/07/10(Fri) 16:23:43)
2009/07/10(Fri) 16:27:35 編集(投稿者)

No38290 (あ さん) に返信
> CreateObject("Excel.Application")
CreateObject で生成するのであれば、

> Dim app As New Microsoft.Office.Interop.Excel.Application
ここで New する必要はありません(というよりも、New すべきではありません)。


> を行ったところ、Microsoft.Office.Interop.Excel.Applicationが定義されていません。
> というエラーがでるのですが、
参照設定していない場合には、"As Object" で宣言してください。


> Microsoft Excel 12.0 Object Liblary を追加せずに、
その場合、解放処理(Marshal.ReleaseComObject メソッド)が
参照設定した場合よりも複雑化しますので、その点は覚悟してください。
(レイトバインド時には、型変換時に参照カウントが増大してしまう可能性があります)

また、予め Excel のバージョンチェックが必要になる点も注意が必要です。

たとえば古いバージョンの Excel だと、一部の Function メソッドが
Sub メソッドとして実装されていたり(例:Range.Insert メソッド)、
引数の総数が変化していたり(例:Workbooks.Open メソッド)するので、
同じコードだと動作しない(エラーになってしまう)場合があります。

これらにより、時には解放手続きさえも変更しなければならない事もありますので、
複数バージョンの Excel 操作を 1 アセンブリで対応させようというのであれば、
事前にそれぞれの Excel バージョンのタイプライブラリの違いを
充分に把握しておく必要があるでしょう。


それから、この掲示板の使い方を再読願えますでしょうか。そこには
  『半角カナは使用しないでください。文字化けの原因になります。』
という記述があるはずです。
引用返信 編集キー/
■38296 / inTopicNo.3)  Re[2]: エクセルの参照方法
□投稿者/ .SHO (959回)-(2009/07/10(Fri) 16:27:22)
本題と関係ないんだけど、なんでエクセルだけ半角カナなの?
引用返信 編集キー/
■38297 / inTopicNo.4)  Re[3]: エクセルの参照方法
□投稿者/ .SHO (960回)-(2009/07/10(Fri) 16:28:27)
しまった…魔界さんの最後に書いてあった。。。
引用返信 編集キー/
■38423 / inTopicNo.5)  Re[4]: エクセルの参照方法
□投稿者/ あ (49回)-(2009/07/14(Tue) 10:20:56)
返信が遅れて申し訳ありません。

皆様ありがとうございました。

"As Object" で宣言し、Newをなくした所、解決することができました!!
ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -