PCメモ

Excelを中心とした業務改善の記録

VBA100本ノック14本目:社外秘シート削除

excel-ubara.com

 

出題内容

客先へ送付するブックを作成します。
シート名に「社外秘」の文字が含まれるシートを削除してください。
他のシートは計算式を消して値だけにしてください。
※シート間参照の数式あり。
※条件付き書式・入力規則は未使用。
※対象はアクティブブックで構いません。

f:id:abv72:20210926130926p:plain

自分の解答

Sub wrk()

    Dim i As Long
    Dim c As Long
    
    Application.DisplayAlerts = False
    
    For i = 1 To Sheets.Count
    
        If InStr(Sheets(i).Name, "社外秘") <> 0 Then
            c = i
        Else
            Sheets(i).Cells.Copy
            Sheets(i).Range("A1").PasteSpecial Paste:=xlPasteValues
        End If
        
    Next i

    On Error Resume Next
    Sheets(c).Delete
    
    Application.DisplayAlerts = True

End Sub

その他

非表示シートがあるかも

保護がかかっていて削除できないかも