- ベストアンサー
エクセルVBAのコード
教えてください。 エクセルでマクロを記録しVBEで編集したりしています。 その画像全てを1度に消去するにはどうしたら良いのでしょうか? やりたい動作は下記です。 シート1に文章と、たくさんの画像が貼ってあります。 画像の全てと、文章の一部を毎月入れ替えます。 シート内に画像がたくさんあり、ひとつひとつ切り取るのは大変です。 そこでシート内の画像全てを一度に切り取るマクロを作りたいのです。 例えば範囲指定してコピーをすると、文章も画像も罫線もコピーされてました。 でも範囲指定して削除をすると画像だけ削除されずに残ってしまいます。 画像だけを切り取りした動作を、マクロで記録して見てみたら、 ActiveSheet.Shapes.Range(Array("Picture 39", "Picture 47","Picture48"))._ Select Selection.Cut となっていました。 Pictre39などと、画像の番号を入れれば切り取りできるのは分かるのですが、 毎月シート内の画像は入れ替えるので、画像番号も変わってしまうと思うのです。 だから、シート内全ての画像を指定して消したいです。 画像の種類はネットでもらったイラストやクリップアートなどです。 購入したVBAの本でも分からないし、ネット検索でも良く分からず・・・ 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは activeshjeet.shapes.selectall selection.cut で試してください。
その他の回答 (1)
- marbin
- ベストアンサー率27% (636/2290)
画像のみ削除するサンプルです。 Dim shp As Object For Each shp In ActiveSheet.DrawingObjects If TypeName(shp) = "Picture" Then shp.Delete Next
お礼
ありがとうございました! 見事に画像が消えました。 教えていただいたコードを勉強して今後に役立てたいと思います。 どちらの回答もとても助かったので、回答時間でポイント決めさせて頂いたのが申し訳ないくらいです。 本当にありがとうございました。
お礼
ありがとうございます! 分かりやすいコードで参考になります。 助かりました