お世話になります。 特定の名前のシートを削除したいのですが、BOOKによっては、ない場合もあり、 ない場合はエラーになってしまいます。 エラー回避の方法をネットで調べて以下作成してみたのですが、 全然関係ないシートが削除されてしまいます。 -------------------------------------------------------- Sub シートとる() On Error Resume Next Sheets("5101").Select ActiveWindow.SelectedSheets.Delete Sheets("5102").Select ActiveWindow.SelectedSheets.Delete Sheets("5103").Select ActiveWindow.SelectedSheets.Delete Sheets("6001").Select ActiveWindow.SelectedSheets.Delete Sheets("6002").Select ActiveWindow.SelectedSheets.Delete Sheets("6101 給与手当").Select ActiveWindow.SelectedSheets.Delete Sheets("6102").Select ActiveWindow.SelectedSheets.Delete Sheets("6103").Select ActiveWindow.SelectedSheets.Delete On Error GoTo 0 End Sub --------------------------------------------------------------- BOOKがたくさんあるので、できれば実現させたいです。 どのようにしたらよいか教えてください。よろしくお願い致します。
問題1:存在しないシートを指定すると、削除時エラーになる 基本スタイル For Each Sht In ActiveWorkbook.Sheets Select Case Sht.name Case "AAAA","BbbB","cccc" Sht.Delete End Select Next Case 行にシート名を羅列すればよいでしょう。 問題2:ブックによって、同名シートを削除してはいけない ブックごとに削除したいシート名の表を作成し、 その表を参照して削除する方法があります。
WinArrow 様 有難うございます。 基本スタイルで問題なく削除することができました。 Eachの使い方がよくわかっていません。調べてみたいと思います。 取り急ぎですが、助かりました。 お礼申し上げます。 yagisawa
利用者の皆様にお知らせです。
マイクロソフト オフィス スペシャリスト(MOS)
ビジネス統計スペシャリスト
IC3(アイシースリー)
VBAエキスパート
アドビ認定アソシエイト(ACA)
マイクロソフト テクノロジー アソシエイト(MTA)