• 締切済み

全シート選択するには?

マクロ初心者で申し訳ありません。 シート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

みんなの回答

noname#62235
noname#62235
回答No.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 動かしてないので動くかどうかわかりませんが。

takajin831
質問者

お礼

回答についてはありがたく思います。 前任者が辞めたため、バックアップのエクセルを入れた。 前任者はどうも、1シートごと保存していたようで、 私はめんどくさがりやなので、いっぺんにと思い書き込みました。

noname#62235
noname#62235
回答No.1

dim シート as worksheet for each シート in worksheets # シートに対して処理を行う next

takajin831
質問者

お礼

初心者なんで もう少し分かりやすくお願いします。

関連するQ&A