- 締切済み
全シート選択するには?
マクロ初心者で申し訳ありません。 シート1の画像を残して削除するマクロなんですが、 シート1しか対応してませんので、これを全シートにするには どうしたらよいか教えてください。 ちなみにシートは 1ページ、2ページ~10ページまであります。 Dim myShap As Shape With Sheet1.GroupObjects Do Until .Count=0 .Ungroup Loop End With For Each myShap In ActiveSheet.Shapes If myShap.Type <> msoPicture Then myShap.Delete End If Next
- みんなの回答 (2)
- 専門家の回答
みんなの回答
#1です。 質問文中のマクロはあなたが考案したものではないのですか? あなたの書いたマクロは、Sheet1に対して処理を行うもの。 私の示したのは、全シートに対して同じ処理を行う汎用的な方法。 だから、Sheet1を「シート」に置き換えて、For Each ~ Nextで全体を囲ってやればいいだけ。 あなたの作ったマクロの後半部分でも、同じようなロジックが使われています。 Dim myShap As Shape Dim シート As Worksheet For Each シート In Worksheets With シート.GroupObjects Do Until .Count=0 .Ungroup Loop End With For Each myShap In シート.Shapes If myShap.Type <> msoPicture Then myShap.Delete End If Next Next 動かしてないので動くかどうかわかりませんが。
dim シート as worksheet for each シート in worksheets # シートに対して処理を行う next
お礼
初心者なんで もう少し分かりやすくお願いします。
お礼
回答についてはありがたく思います。 前任者が辞めたため、バックアップのエクセルを入れた。 前任者はどうも、1シートごと保存していたようで、 私はめんどくさがりやなので、いっぺんにと思い書き込みました。