電子書籍の厳選無料作品が豊富!

エクセルのシート(Cells)の全データをコピー&(別のシートへ)貼りつける(マクロを使用して貼りつけています)とき、「オートシェイプ」だけを除いた全データを貼り付けることは可能でしょうか?

そのオートシェイプはマクロボタンとしているのですが、マクロを実行するたびにオートシェイプの貼付けが繰替えされるため、どんどん重なっていくのを防ぎたいのです。よろしくご指導ください。

※このオートシェイプの貼付の繰返しによりファイルが重くなることはないでしょうか?ないのなら無視してもよいかとは思っています。

A 回答 (1件)

こんにちは。

KenKen_SP です。

一度貼り付けた後で、削除するば良いかと。オートシェープや画像
とかボタンなど全てを一度に削除するなら、

ActiveSheet.DrawingObjects.Delete

です。残して置きたいオブジェクトがある場合は、以下のように
ループさせて、一個一個判別しながら削除します。次のコードは
画像以外を削除しています。

Dim OBJ As Object
For Each OBJ In ActiveSheet.DrawingObjects
  '削除するオブジェクトを判定します
  If TypeName(OBJ) <> "Picture" Then
    OBJ.Delete
  End If
Next OBJ

>このオートシェイプの貼付の繰返しによりファイルが重くなる
>ことはないでしょうか?ないのなら無視してもよいかとは思っ
>ています

不要なら削除した方がファイルも軽いし、何よりエラー予防のた
めにも削除した方が良いと思います。
    • good
    • 0
この回答へのお礼

KenKen_SPさん、ありがとうございます。
今のところ、すべてオブジェクトは削除と
思っています。
本当にありがとうございました。

お礼日時:2005/11/22 14:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!