Excel VBA質問箱 IV

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

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


54264 / 76738 ←次へ | 前へ→

【27270】Re:シートの削除
発言  ichinose  - 05/8/4(木) 0:02 -

引用なし
パスワード
   ▼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

0 hits

【27267】シートの削除 yasu 05/8/3(水) 22:09 質問
【27270】Re:シートの削除 ichinose 05/8/4(木) 0:02 発言
【27272】Re:シートの削除 yasu 05/8/4(木) 6:46 お礼

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