タイトル | : Excel.Shape グループ化について |
記事No | : 1787 |
投稿日 | : 2005/06/03(Fri) 15:21 |
投稿者 | : ぐる |
[OSのVer]:WindowsXP SP2 [VBのVer]:VB.NET
いつも参考にさせてもらってます。
ここのExcelTipsを参考に.netから要素等をExcelに投げグラフを作り、 PictureBoxに取得させるまではできたのですが、 望む結果としてはグラフとあるオブジェクトを同じPictureBoxに表示させたいのです。 別々にShapeとChartを宣言し作成後PictureBoxに貼り付けても当然どちらかが上書きされます。 そこでグループ化をさせようとしているのですが、以下のポイントでエラーが発生します。
Dim xlShapes As Excel.Shapes Dim xlShape1 As Excel.Shape Dim xlShape2 As Excel.Shape Dim xlShape3 As Excel.Shape Dim xlShapeRange As Excel.ShapeRange Dim xlShapeAL As New ArrayList xlShapes = xlSheet.Shapes xlShapes.AddShape(Office.MsoAutoShapeType.msoShapeOval, 103, 190, 6.75, 6.75) xlShape1 = xlShapes.Item(1) 'ここより上の場所でグラフを宣言していてそのIndexは1 xlShapeRange = xlShapes.Range(2) xlShapeRange.Fill.ForeColor.SchemeColor = 8 xlShape2 = xlShapes.Item(2) ''''''''''''''''''''''↓ xlShapeAL.Add(xlShape1)'xlShapeAL.Add(1)'obj指定もindex指定もだめでした xlShapeAL.Add(xlShape2)'xlShapeAL.Add(2)' xlShapeRange = xlShapes.Range(xlShapeAL)'エラーポイント ''''''''''''''''''''''↑ xlShape3 = xlShapeRange.Group() ''''''''''''''''''''''↓ xlShape3.CopyPicture(Appearance:=Excel.XlPictureAppearance.xlScreen, _ Format:=Excel.XlCopyPictureFormat.xlBitmap) '以下PictureBox貼り付け 省略 ''''''''''''''''''''''↑ 開放は省略
テストでマクロ記録されたVBA文を見て (省略)shapes.range(array(obj名1,obj2名)).select で複数選択になっているようでしたので ArrayListではなくArrayも使用してみたのですがよくわかりませんでした。
どなたかグループ化に関してご教授願います。 また、グループ化しないでいけるやり方もありましたらよろしくおねがいします。
|