Excel VBA質問箱 IV

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

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


5069 / 13644 ツリー ←次へ | 前へ→

【52766】ワークシートを自動で削除するには おやじvba若葉マーク 07/12/2(日) 17:11 質問[未読]
【52767】Re:ワークシートを自動で削除するには かみちゃん 07/12/2(日) 17:56 発言[未読]
【52768】Re:ワークシートを自動で削除するには かみちゃん 07/12/2(日) 18:00 発言[未読]

【52766】ワークシートを自動で削除するには
質問  おやじvba若葉マーク  - 07/12/2(日) 17:11 -

引用なし
パスワード
   どうすればよいのでしょう。

Sheets("名前リスト").Select
Range("a1").Select
Set st = ActiveSheet
For I = 1 To 30
If Sheets("名前リスト").Cells(I, 1).Value = "" Then Exit For
ActiveWorkbook.Worksheets.Add.Name = st.Range("A" & I)
Next

でシート名が自動で書き込まれシートの自動挿入ができると以前に教わり、リスト数が10でも6でもその数の分だけ別々の名前で自動挿入できました。

今度不特定数のシートを自動で削除したいのですがどうしたらよいものでしょう?

マクロの記録で試したところ単純に削除するには

Sheets("名前1").Select
  ActiveWindow.SelectedSheets.Delete

複数削除するには

Sheets(Array("名前1", "名前2")).Select
  Application.CutCopyMode = False
  ActiveWindow.SelectedSheets.Delete

と出ました。
しかし、Sheets("名前1").Select
の"名前1"や"名前2"のところを自動で指定しなくてはいけません。
どなたか教えてください。
よろしくお願いします。

【52767】Re:ワークシートを自動で削除するには
発言  かみちゃん  - 07/12/2(日) 17:56 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>今度不特定数のシートを自動で削除したいのですがどうしたらよいものでしょう?

不特定数をどのように指定するのでしょうか?
以下のような感じでいかがでしょうか?

Sub Sample()
 Dim vntSheetName As Variant
 Dim i As Integer
 
 vntSheetName = Array("Sheet2", "Sheet4", "Sheet6")
 
 For i = 0 To UBound(vntSheetName)
  Application.DisplayAlerts = False
  On Error Resume Next
  Sheets(vntSheetName(i)).Delete
  On Error GoTo 0
  Application.DisplayAlerts = True
 Next
End Sub

【52768】Re:ワークシートを自動で削除するには
発言  かみちゃん  - 07/12/2(日) 18:00 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>>今度不特定数のシートを自動で削除したいのですがどうしたらよいものでしょう?
>
>不特定数をどのように指定するのでしょうか?

あと、以下のような方法もありますね。
http://www.moug.net/tech/exvba/0040032.htm

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