3

プロパティの名前を使用してワークシートのカスタムプロパティにアクセスしようとしていますが、これはサポートされていないようです(少なくとも、C#では、VBで機能するという報告があり、ドキュメントにもそのように記載されています)。誰かがこれがC#で機能していないことを確認できますか?コード例は次のとおりです。

activeWorkSheet.CustomProperties.Add("Test", 123);
// Accessing by index works, but by name it doesn't. 
// The documentation says access by name should be possible
var works = activeWorkSheet.CustomProperties.Item[1].Value;
var doenstWork = activeWorkSheet.CustomProperties.Item["Test"].Value;

回避策は、すべてのプロパティを繰り返して適切なプロパティを見つける方法にすぎないことは知っていますが、追加のオーバーヘッドは避けたいと思います。

4

1 に答える 1

3

これがC#で機能していないことを誰かが確認できますか?

Office 2013 プレビューとバージョン 15 の Interop API を試してみたところ、これが C# では機能しないことを確認できCOMExceptionます (「型の不一致」というメッセージとともに a がスローされます)。

キー名をインデクサーのインデックスとして使用することは完全に合法であると記載されているドキュメントを確認しItemました。プロパティのドキュメントからCustomProperties.Item、次のインデクサーが利用可能であると記載されています。

CustomProperty this[
    Object Index
] { get; }

...そして、次のテキストでは、ドキュメントは次のように述べています。

パラメーター

索引

タイプ:System.Object

必須オブジェクト。オブジェクトの名前またはインデックス番号。

...ドキュメントには名前が有効なキーであると記載されているため、発生する動作はバグである可能性があります。

于 2013-02-06T21:20:20.967 に答える