QA@IT
«回答へ戻る

回答を投稿

segさんの書き込み (2006-12-20 13:49) より:

そうすることによって、インテリセンスは使えるようにはなりますが

メソッドが違うみたいです、例えばRangeを参照する際だと

COM:xlSheets.get_Range(xlSheets.Cells[1, 1],xlSheets.Cells[1, 1])

MSレイトバインド:objSheet.Range("A1")

となるみたいです。

そうはならないと思いますが...
参照に加えた Microsoft Excel Object Library のバージョンはいくつでしょうか?

COM:xlSheet*s*.get_Range(xlSheets.Cells[1, 1],xlSheets.Cells[1, 1])

MSレイトバインド:objSheet.Range("A1")

'Sheet*s' が複数形になっているのが、気になります。
Excel.Worksheet 型と、Excel.Worksheet
s* 型は別物なのですから、比較する意味がありません。

# 再度申し上げますが、遅延バインディングを使用することと、
# COM ラッパーオブジェクトを使用することは、全く関係ありません。
# 「遅延バインディング」 の意味合いを、正確に理解しましょう。

最初の投稿に戻りますが、

しかし、C#でのレイトバインドコードは私にはとても難しく調べている間に、VBでクラスライブラリを作成しそれを用いてExcel操作するのがよい方法だと知り早速、作成しているのですが

こういうことであれば、Excel VBA マクロもしくは、VBScript に実装して、
C# からそれを呼び出す方が、COM を意識する必要が少なくなり安全です。

_________________C# と VB.NET の入門サイト
じゃんぬねっと日誌

投稿者:じゃんぬねっと

> segさんの書き込み (2006-12-20 13:49) より:

> 
> そうすることによって、インテリセンスは使えるようにはなりますが

> メソッドが違うみたいです、例えばRangeを参照する際だと

> COM:xlSheets.get_Range(xlSheets.Cells[1, 1],xlSheets.Cells[1, 1])

> MSレイトバインド:objSheet.Range("A1")

> となるみたいです。

> 

そうはならないと思いますが...
参照に加えた Microsoft Excel Object Library のバージョンはいくつでしょうか?


> **COM**:xlSheet**s**.get_Range(xlSheets.Cells[1, 1],xlSheets.Cells[1, 1])

> **MSレイトバインド**:objSheet.Range("A1")

> 

'Sheet**s**' が複数形になっているのが、気になります。
Excel.Worksheet 型と、Excel.Worksheet**s** 型は別物なのですから、比較する意味がありません。

\# 再度申し上げますが、遅延バインディングを使用することと、
\# COM ラッパーオブジェクトを使用することは、全く関係ありません。
\# 「遅延バインディング」 の意味合いを、正確に理解しましょう。

最初の投稿に戻りますが、


> しかし、C#でのレイトバインドコードは私にはとても難しく調べている間に、VBでクラスライブラリを作成しそれを用いてExcel操作するのがよい方法だと知り早速、作成しているのですが

> 

こういうことであれば、Excel VBA マクロもしくは、VBScript に実装して、
C# からそれを呼び出す方が、COM を意識する必要が少なくなり安全です。

_________________<a href="http://jeanne.wankuma.com/" target="_blank">C# と VB.NET の入門サイト</a>
<a href="http://blogs.wankuma.com/jeanne/" target="_blank">じゃんぬねっと日誌</a>


投稿者:じゃんぬねっと