İlgili çalışma sayfalarının ismi girildiğinde bu çalışma sayfaları haricindeki diğer sayfaları silen VBA kodu alternatifidir.
Option Explicit
'---------------------------------------
'Çalışma kitabı kapatılırken işlem yap.
'---------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
VerilenSayfalarinDisindakiSayfalariSil
End Sub
'---------------------------------------
'Sayfa Silme Makrosu
'---------------------------------------
Sub VerilenSayfalarinDisindakiSayfalariSil()
'---------------------------------------
'Değişkenler
'---------------------------------------
Dim i As Integer
Dim dizi As Variant
Dim sayfa As Worksheet
Dim kontrol As Boolean
'---------------------------------------
'Değişkenlere değer ataması yap.
'---------------------------------------
dizi = Array("veri", "rapor", "satis")
kontrol = False
'---------------------------------------
'Her sayfayı kontrol et.
'---------------------------------------
For Each sayfa In ThisWorkbook.Sheets
'---------------------------------------
'Dizideki her sayfa ismi için işlem yap.
'---------------------------------------
For i = LBound(dizi) To UBound(dizi)
'---------------------------------------
'Eğer dizideki sayfa adı varsa kontrol
'değişkeninin değerini True yap.
'---------------------------------------
If dizi(i) = sayfa.Name Then
kontrol = True
End If
Next
'---------------------------------------
'Eğer "kontrol" değişkeninin değeri False ise
'ilgili sayfa dizideki sayfa isimlerinden
'hiçbiriyle eşleşmemiş demektir. Sayfayı sil.
'
'Eğer "kontrol" değişkeninin değeri True ise
'bir şey yapma, kontrol edilecek yeni sayfa
'için "kontrol" değişkeninin değerini yeniden
'ayarla.
'---------------------------------------
If kontrol = False Then
Application.DisplayAlerts = False
sayfa.Delete
Application.DisplayAlerts = True
Else
kontrol = False
End If
Next
End Sub