|
▼yasu さん:
こんばんは。
>A1〜AxまでA列にシート名があります。下記のコードを利用して
>例えばA1に「シート1」・・・A5には「シート5」のシート名がある状態で、
>マクロを実行するとシート作成が出来ますが・・・
>シート2が不要になった時、
>A1にシート1、A2にシート3、A3にシート4、A5にシート4のシート名が書かれ
>ます。(つまりシート2の名前がが消された状態です)
>しかし、下のコードではシート上には、「シート2」は残ったままになりますが、このシート2をデリートさせる方法はないでしょうか?
"ABC"というシート以外のシートを一度削除する処理を入れたらいかがですか?
>
>Sub メインABCからサブ作成()
>
> Dim i As Integer
> Dim ST_Name As String
>
Dim sht As Object
For Each sht In Sheets
If sht.Name <> "ABC" Then Call del_sheet(sht.Name)
Next
> For i = Sheets("ABC").Cells(65536, 1).End(xlUp).Row To 1 Step -1
> ST_Name = Cells(i, 1).Value '
>
' del_sheet ST_Name
'↑既に削除されているので要らない
> Sheets("ABC").Activate
> Sheets.Add after:=Sheets(Sheets.Count)
>
> Sheets(Sheets.Count).Name = ST_Name
>
> Range("A1") = ST_Name
>
> '=====作業=====
>
> Sheets("ABC").Activate
> Next
>
>
>End Sub
>
>Sub del_sheet(ST_Name As String)
> On Error Resume Next
> Application.DisplayAlerts = False
> Sheets(ST_Name).Delete
> On Error GoTo 0
> Application.DisplayAlerts = True
>End Sub
|
|