プロが教えるわが家の防犯対策術!

 エクセルで写真集を作成するマクロを作ると同時に、修正し易いように、一度作った写真集を一括クリアするマクロも作りました。エクセルシートに貼ったJPGデータをShapesで拾いだし、Selection.ShapeRange.Deleteを使って消去する内容です。
 どころが、注釈のために写真に手作業で入れ込んだ矢印や赤丸などのオートシェイプだけは残したいのですが、同じShapesなので写真と一緒に消えてしまいます。
 そこで質問ですが、マクロで一部の図は消せて一部の図は残せるようにするには、どうすればいいでしょうか?例えばJPGデータだけ特別に識別できるとか、逆に矢印等を作った時にロックを掛けるとかいう方法はないでしょうか。

A 回答 (3件)

Sub macro()


Dim C As Picture
For Each C In ActiveSheet.Pictures
C.Delete
Next C
End Sub

とか、選択して消したいなら、

Sub macro()
Dim C As Shape
For Each C In ActiveSheet.Shapes
C.Select
If TypeName(Selection) = "Picture" Then
C.Delete
End If
Next C
End Sub

とか
    • good
    • 0
この回答へのお礼

リストまで書いて頂いてありがとうございます。これも試してみます。

お礼日時:2012/12/18 11:07

ShapeオブジェクトのTypeプロパティ(図形の種類)で判別できないのかな?

    • good
    • 0
この回答へのお礼

マクロ初心者なのでそういうのは知りませんでした。参考にします。ありがとうございました。

お礼日時:2012/12/18 11:09

図形は残して画像だけ全部消したいなら


activesheet.pictures.delete
でいいです。
    • good
    • 0
この回答へのお礼

あっさりうまくいきました。こんな簡単だったんですね。おかげで助かりました。ありがとうございました。

お礼日時:2012/12/18 11:10

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