2012-02-15 3 views
0

いくつかのPowerPoint VBAマクロを特定のタスクを自動化するVSTOアドオン内のC#に移植しています。AutoShape.Adjustmentsオブジェクト - 2003対2010またはVBA vs. VSTO?

マクロはPP 2003用に書かれており、私はPP 2010をターゲットとしてVSTOアドオンを書いています。マクロは、AutoShape.Adjustmentsオブジェクトを通じてオートシェイプ操作を頻繁に使用します。私はこのような伝説-とラインオートシェイプの「ライン・ターゲット」のX軸位置にアクセスする2003下のVBAで

:C#の/ VSTOで

shape.Adjustments.Item(1) = someFloat 

これが変更されているようです〜

shape.Adjustments[6] = someFloat; 

c#/ VSTOに.Itemコレクションがあります。

これらの値が文書化されている場所は誰でも知っていますか?最も重要なのは、2010年の文書化された場所です。

これはすべてVSTOへの切り替えによるものですか?もしそうなら、なぜあなたは異なるインデックス番号を使用することを選ぶでしょうか?

今のところ私はVBAのターゲットに対応するものを見つけるまで、C#1のすべての調整インデックスを手作業でテストすることに固執しています。

答えて

1

私は、さまざまな調整が何をするのか、どのような形状に適用されるのかを説明するドキュメントを一度も出回っていません。インデックス付け/構文の違いとしては

、野生の推測:VBA、Shape.Adjustments.Item(X)において

とShape.Adjustments(x)は等価です。 Adjustmentsのデフォルトプロパティ(ほとんどのコレクションと同様)は.Itemなので、明示的に使用する必要はありません。

おそらく、.NETでは、(わかっているように)デフォルト/暗黙のプロパティが存在しないため、すべてのAdjustmentsプロパティにインデックスを付けることになります。言い換えれば、あなたが見ているものは、すべての形に一貫しているオフセットです。

+0

ありがとうございます。私が今までに集めた情報から、実際にはC#のAdjustments []はVBAのAdjustments.Item()の逆バージョンです。しかし、私はこの規則の例外をすでに見てきました。結局のところランダムであるかもしれません。 – Till

関連する問題