0

私はvstoを使用して、Excel-2007で作業しています...

次のような行列があるとしましょう

     A    B    C
 1  10   11    12
 2  10   12    11
 3  11   10    12

私は常に乱数で満たされたランダムな行列を読み取ります... 上記の例、および他の条件は、同じ番号に従ってランダムに色付けされることです。上記の場合、10 を含むセルは赤く色付けされ、11 を含むセルは緑に色付けされます...

今、私はこの種の情報を表示するワークシートにある種のパネルを置かなければなりません

rectangle with RED color  - 10
rectangle with GREEN color - 11
rectangle with BLUE color  - 12

チャートでやろうとしましたが、残念ながら成功しませんでした... それらの情報をセルの範囲に配置することはできません。それは私が探している解決策ではありません...ある種のパネルに配置する必要があります、ユーザーがパネルを好きな場所にドラッグできるようにします..

私はそれを行う方法がわかりません.smth種類のパネルを作成し、そこにその情報を配置する方法を教えてください...ありがとう!

これについて言及せずに申し訳ありませんが、パネル内に四角形を配置できるようにしたいので、パネルを移動するたびにパネルのすべてのコンポーネントが一緒に移動する必要があります...また、ユーザーがコンテンツを変更できるようにしたくありませんパネル、彼らはパネルのみを動かすことができるはずです...

4

1 に答える 1

1

テキストの場合のみ、テキストボックスでうまくいくでしょう。

長方形が本当に必要な場合は、いくつかの描画オブジェクトを作成できます。色付きの長方形用の塗りつぶされた長方形、説明用のテキストボックス、凡例のフレームとして機能する白い背景の長方形です。描画したら、それらをグループ化して、ユーザーのPOVから単一のオブジェクトに変換できます。

これは、C#に変換してテストしたMSDNの編集例です。

Excel.Worksheet ex = (Excel.Worksheet)Application.ActiveSheet;
ex.Shapes.AddShape(Microsoft.Office.Core.MsoAutoShapeType.msoShapeIsoscelesTriangle, 10, 10, 100, 100).Name = "shpOne";
ex.Shapes.AddShape(Microsoft.Office.Core.MsoAutoShapeType.msoShapeIsoscelesTriangle, 150, 10, 100, 100).Name = "shpTwo";
ex.Shapes.AddShape(Microsoft.Office.Core.MsoAutoShapeType.msoShapeIsoscelesTriangle, 300, 10, 100, 100).Name = "shpThree";
object[] shapeArray = {"shpOne", "shpTwo", "shpThree"};
Excel.ShapeRange rng = ex.Shapes.get_Range(shapeArray);
Excel.Shape grp = rng.Group();

これにより、互いにリンクされた3つの三角形が作成されます。ユーザーは、それらを1つのオブジェクトのようにドラッグします。

于 2009-07-13T14:49:09.597 に答える