|
分類:[.NET 全般]
C#恐怖症と申します。いつもお世話になっています。
掲題の件ですが、現在VS2008(C#)にて遅延バインドを使用してExcel操作を行っておりますが その過程で調べての解決する糸口が掴めなかったものがありましたので、質問させて下さい。
具体的に説明いたしますと、Excel.WorkbookのColorsプロパティ(現在のパレットの色を配列で返す)を取得した場合、 COMでの戻り値はVARIANTであるため、C#ではObjectで受け取ります。 そして、受け取ったObjectをビジュアライザで見てみると、Object[1..56]という風に書かれており、 内容を確認すると、添え字が1から始まる配列になっておりました。
そこで質問なのですが、添え字が0から始まるものであれば、キャストが可能な為、 一度キャストするなどして添え字で配列の各値を取得できるのですが、 添え字が1から始まる為、キャストする事すらままならず、 また object[] でなくただの object の為、添え字を使用してのアクセスも出来ません。
実際問題として、Excel.WorkbookのColorsプロパティにはIndexを指定しての取得も出来るので このプロパティに関しては問題の回避方法があると考えておりますが、 基本的にExcel操作を考えた場合、VARIANTでの戻り値(配列)は添え字が1から始まるのがほとんどですので、 いずれこの問題を解決する必要があると考えています。
問題解決の糸口になるような情報などありましたらご教授願います。
|