- ベストアンサー
VBAで指定したSheetの削除
お世話になります 指定したシート以外すべてのシートを削除させるボタンを作成したいのですが ↓こんなものを見つけました。(URLわからくなってしまった;;) これは図1~ワークシートを削除させるVBAらしいのですが ■解らないこと なぜかsheetにすると削除してくれません。 '指定以外ワークシート削除 Private Sub CommandButton1_Click() Dim myShe As Worksheet For Each myShe In Worksheets If myShe.Name <> Worksheets("図").Name Then myShe.Visible = Delete End If Next End Sub
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
横からすいません たぶんここですね For Each myShe In Worksheets コレを For Each myShe In Sheets にします あと If myShe.Name <> Worksheets("図").Name Then myShe.Visible = Delete は If myShe.Name <> "図" Then myShe.Delete に変えればOKと思います 続けると For Each myShe In Sheets If myShe.Name <> "図" Then myShe.Delete ・・・ なんでSheetsじゃなきゃならないのかは、調べてませんが、For Eachでシート名を取るとき、上手く行かない時があるから使わないって割り切りで良いと思います http://oshiete1.goo.ne.jp/qa3308068.html おまけ 削除するシート名がわかるのであれば Sheets("Sheet1","Sheet2","Sheet3","Sheet4","Sheet5","Sheet6").Delete なんてのもあります まぁただのおまけですが…^^;
その他の回答 (3)
- merlionXX
- ベストアンサー率48% (1930/4007)
#2です。 貼り付けが上手くいきませんでした。 こちらでためしてください。 Private Sub CommandButton1_Click() Dim myShe As Worksheet For Each myShe In Worksheets If myShe.Name Like "*Sheet*" Then 'Sheet名にSheetを含めば Application.DisplayAlerts = False '警告を止める myShe.Delete '削除 Application.DisplayAlerts = True '警告を元に戻す End If Next End Sub
- merlionXX
- ベストアンサー率48% (1930/4007)
> Sheetとつけられた名前を削除させたいのですが > たとえば > ■削除できるもの > Sheet1,Sheet2,Sheet3,Sheet4,Sheet5,Sheet6 > ■できないもの >Sheet以外のもの Sheetの名前に「Sheet」という言葉を含んでいれば削除するのですね? ならば以下をお試しください。 Private Sub CommandButton1_Click() Dim myShe As Worksheet For Each myShe In Worksheets If myShe.Name Like "*Sheet*" Then 'Sheet名にSheetを含めば Application.DisplayAlerts = False '警告を止める myShe.Delete '削除 Application.DisplayAlerts = True '警告を元に戻すNext End If End Sub
- hana-hana3
- ベストアンサー率31% (4940/15541)
>myShe.Visible = Delete Visible はシート表示の設定なので、DELETE を設定する事はできません。 下記のようにします。 Application.DisplayAlerts = False myShe.Delete Application.DisplayAlerts = True
補足
お返事ありがとうございます Sheetとつけられた名前を削除させたいのですが たとえば ■削除できるもの Sheet1,Sheet2,Sheet3,Sheet4,Sheet5,Sheet6 ■できないもの Sheet以外のもの できないのであれば、逆に指定しているシート以外削除できないですか? 指定シートは4シートぐらいあります End Sub