1

VSTO (C#) プロジェクトでは、写真やグラフなどの形状オブジェクトを含む UsedRange を取得したいと考えています。

1. 形状オブジェクトで UsedRange を取得する方法はありますか?

そのような方法が見つからなかったので、これを使用してエッジを計算することを考えました:

foreach (Excel.Shape shape in shapeObjects)
{
     float shapeBottom = shape.Top + shape.Height;
     float shapeRight = shape.Left + shape.Width;
     if (maxBottom < shapeBottom)
     {
         maxBottom = shapeBottom;
     }
     if (maxRight < shapeRight)
     {
         maxRight = shapeRight;
     }
 }

 Excel.Range r = <XXX>(maxBottom, maxRight);

そのため、maxBottom と maxRight から Range を取得するという問題が発生しました。

2. 幅と高さを指定して Range オブジェクトを取得する方法はありますか?

4

1 に答える 1

1

シェイプには、シェイプの右下隅にあるセルを返す BottomRightCell プロパティがあります。形状ごとにそのプロパティを反復処理すると、必要な範囲の右端の列と最後の行を収集できるはずです。

于 2012-10-16T15:03:41.077 に答える