VBを使ってExcelを操作するにあたり、Set オブジェクト(オブジェクトは
ShapeRange)を使って定義したオブジェクトを、同一エクセルシート上に
コピー&ペーストするにはどのような構文を入力すればよろしいのでしょうか?
また、指定したセル位置にペーストするにはどうしたらよろしいでしょうか?
ちなみに以下のように入力してみましたが、そのようなメソッドはサポートして
いないといわれ、できませんでした。
ご回答よろしくお願いします。
Dim xlSheet As Excel.WorkSheet
Dim Test As Excel.ShapeRange
Set Test = xlSheet.Shapes.Range(Array("Rectangle 1", "Oval _
2", "Rectangle 3"))
Test.Copy
Test.Paste
一度、Excel のヘルプで ShapeRange コレクションについて
調べていただけませんか?(^^;)
コレクションと言うのは通常 Item とか表現される同じ部品を
格納しておく入れ物のことです。入れ物である ShapeRange
コレクションに Copy メソッドはありません。Index を指定して
図形オブジェクト(Shape)を特定して下さい。Shape オブジェクトに
Copy メソッドがあります。
マクロを記録されたのだと思いますが、Paste は
ActiveSheet.Paste
とかじゃなかったですか?WorkSheet オブジェクトですよ?ActiveSheet は。
混同しないで下さい。
プログラム中、『.(ピリオド)』打った時に用意されているメソッドや
プロパティの一覧が出ると思いますが、基本的に、そこに無い物を勝手に
プログラムしても動いてはくれませんよ?。Excel の動作は Excel
側のヘルプを見ながら、オブジェクトブラウザなんかで確認しつつ
プログラムしていきます。その辺りのテクニックを学んで下さい。
特攻隊長まるるう さん
教えていただいたとおりやってみましたらできました。
ありがとうございました。