VBを使ってExcelのオブジェクト(ShapeRange)をコピー&ペーストするには?

解決


SUGI  2004-08-03 19:12:27  No: 115323

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


特攻隊長まるるう  2004-08-04 03:02:58  No: 115324

一度、Excel のヘルプで ShapeRange コレクションについて
調べていただけませんか?(^^;)

コレクションと言うのは通常 Item とか表現される同じ部品を
格納しておく入れ物のことです。入れ物である ShapeRange 
コレクションに Copy メソッドはありません。Index を指定して
図形オブジェクト(Shape)を特定して下さい。Shape オブジェクトに
Copy メソッドがあります。

マクロを記録されたのだと思いますが、Paste は
    ActiveSheet.Paste
とかじゃなかったですか?WorkSheet オブジェクトですよ?ActiveSheet は。
混同しないで下さい。

プログラム中、『.(ピリオド)』打った時に用意されているメソッドや
プロパティの一覧が出ると思いますが、基本的に、そこに無い物を勝手に
プログラムしても動いてはくれませんよ?。Excel の動作は Excel
側のヘルプを見ながら、オブジェクトブラウザなんかで確認しつつ
プログラムしていきます。その辺りのテクニックを学んで下さい。


SUGI  2004-08-05 01:36:08  No: 115325

特攻隊長まるるう さん
教えていただいたとおりやってみましたらできました。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加