|
■No74195 (シャープ さん) に返信 > 先程、ファイル出力できないと書きましたが、
何の話でしょうか? そのような投稿を見た覚えが無いのですが。
> SavedAsで試したところ、確認することはできました。
No74184 の件はどうなりましたでしょうか。状況がさっぱり分かりません。(^^; 解決したのだとすれば、どのような操作で解決したのかフィードバックをお願いします。
> もう1つお聞きしたいのですが、xlWorkSheet.Cells[]を使用したプロパティの設定は > できないでしょうか?
Cells を C# のインデクサとして扱いたい、という意図でしょうか。
可能か不可能かで言えば、C# であっても問題なく xlWorkSheet.Cells[y, x].Value = "TEST"; などと表記できます。 ただし .NET 4 以降であれば、ですけれどね。
もしも C#2008 以下(.NET 3.5 以下)のバージョンで扱うのだとすれば、 ((Excel.Range)xlWorkSheet.Cells.get_Item(y, x)).set_Value("TEST", Type.Missing); という表記に変換する必要があります。相互運用機能アセンブリによっては、 ((Excel.Range)xlWorkSheet.Cells[y, x]).set_Value("TEST", Type.Missing); と書けるケースもありますけれどね。
------------
・Cells プロパティは「引数を持たないプロパティ」のため、本来は丸括弧や角括弧を伴わずに表記するものである。
・Cells プロパティは Range 型を返すプロパティである。
・Range プロパティは「既定のプロパティ」を持っており、C#2010 以降ではそれを インデクサとして扱えるが、これは C#2008 ではサポートされていない構文のため、 get_Item メソッドで代用することになる。 (ただし相互運用機能アセンブリによっては、そのままインデクサとして使えるケースもある)
・Range プロパティの「既定のプロパティ」は COM の VARIANT 型を返す。C#2010 以降では dynamic 型として処理されるケースもあるが、C#2008 では object 型を返すことになるので、 本来のデータ型(Range 型)にキャストして受け取る必要がある。
・Value プロパティは、Excel 2000 以下では「引数を持たないプロパティ」であったが、 Excel 2002 以降では、「省略可能な 1 つの引数を持つプロパティ」となっている。 そのため、C#2008 以下 と Excel 2002 以降の組み合わせの場合、Value プロパティが使えず、 set_Value / get_Value メソッド経由で呼び出す必要がある。
|