Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8731 / 13646 ツリー ←次へ | 前へ→

【31520】シート削除について あんこ 05/11/24(木) 13:52 質問[未読]
【31521】Re:シート削除について Kein 05/11/24(木) 14:04 回答[未読]
【31528】Re:シート削除について あんこ 05/11/24(木) 15:49 お礼[未読]
【31522】Re:シート削除について Statis 05/11/24(木) 14:10 回答[未読]
【31529】Re:シート削除について あんこ 05/11/24(木) 15:50 お礼[未読]

【31520】シート削除について
質問  あんこ  - 05/11/24(木) 13:52 -

引用なし
パスワード
   いつもお世話になっております。
初歩的な質問で恐縮ですが、教えていただければ幸いです。

ファイルの中に複数のシートがあるのですが、シート名が”分析1”、”分析2”のように”分析n”(nは1から始まって500程度まで増加する可能性があります)という形式になっているシートを削除したいと思うのですが、どのように記述すればよろしいでしょうか?

宜しくお願い致します。

【31521】Re:シート削除について
回答  Kein  - 05/11/24(木) 14:04 -

引用なし
パスワード
   Sub Sheet_Del()
  Dim i As Long

  With Application
   .ScreenUpdating = False
   .DisplayAlerts = False
  End With
  For i = Worksheets.Count To 1 Step -1
   With Worksheets(i)
     If Left$(.Name, 2) = "分析" Then .Delete
   End With
  Next i
  With Application
   .ScreenUpdating = True
   .DisplayAlerts = True
  End With
End Sub

ぐらいで出来ると思います。

【31522】Re:シート削除について
回答  Statis  - 05/11/24(木) 14:10 -

引用なし
パスワード
   こんにちは

テスト環境にてお試しを。

Sub Test()
 Dim SAr() As Variant, n As Long, i As Long
  n = 0
  For i = 1 To Sheets.Count
    If Len(Sheets(i).Name) > 2 Then
      If Sheets(i).Name Like "分析*" Then
       ReDim Preserve SAr(n)
       SAr(n) = Sheets(i).Name
       n = n + 1
      End If
    End If
  Next
  Application.DisplayAlerts = False
  Sheets(SAr).Delete
  Application.DisplayAlerts = True
End Sub

【31528】Re:シート削除について
お礼  あんこ  - 05/11/24(木) 15:49 -

引用なし
パスワード
   ▼Kein さん:

出来ました!!
いつもありがとうございます。
今後も宜しくお願い致します。

【31529】Re:シート削除について
お礼  あんこ  - 05/11/24(木) 15:50 -

引用なし
パスワード
   ▼Statis さん:

出来ました!!
いつもありがとうございます。
これからも宜しくお願い致します。

8731 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free