• ベストアンサー

エクセルVBAのコード

教えてください。 エクセルでマクロを記録しVBEで編集したりしています。 その画像全てを1度に消去するにはどうしたら良いのでしょうか? やりたい動作は下記です。   シート1に文章と、たくさんの画像が貼ってあります。   画像の全てと、文章の一部を毎月入れ替えます。   シート内に画像がたくさんあり、ひとつひとつ切り取るのは大変です。   そこでシート内の画像全てを一度に切り取るマクロを作りたいのです。 例えば範囲指定してコピーをすると、文章も画像も罫線もコピーされてました。 でも範囲指定して削除をすると画像だけ削除されずに残ってしまいます。 画像だけを切り取りした動作を、マクロで記録して見てみたら、 ActiveSheet.Shapes.Range(Array("Picture 39", "Picture 47","Picture48"))._ Select Selection.Cut となっていました。 Pictre39などと、画像の番号を入れれば切り取りできるのは分かるのですが、 毎月シート内の画像は入れ替えるので、画像番号も変わってしまうと思うのです。 だから、シート内全ての画像を指定して消したいです。 画像の種類はネットでもらったイラストやクリップアートなどです。 購入したVBAの本でも分からないし、ネット検索でも良く分からず・・・ 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Ce_faci
  • ベストアンサー率36% (46/127)
回答No.1

こんばんは activeshjeet.shapes.selectall selection.cut で試してください。

fujimaturi
質問者

お礼

ありがとうございます! 分かりやすいコードで参考になります。 助かりました

その他の回答 (1)

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.2

画像のみ削除するサンプルです。 Dim shp As Object For Each shp In ActiveSheet.DrawingObjects If TypeName(shp) = "Picture" Then shp.Delete Next

fujimaturi
質問者

お礼

ありがとうございました! 見事に画像が消えました。 教えていただいたコードを勉強して今後に役立てたいと思います。 どちらの回答もとても助かったので、回答時間でポイント決めさせて頂いたのが申し訳ないくらいです。 本当にありがとうございました。

関連するQ&A