Delete semua objek Name Object dengan VBA

Tahukah anda ketika anda mengcopy sheet antar file apa saja yang terbawa?
Tanpa disadari ternyata tidak hanya yang nampak di layar(worksheet) saja yang tercopy, melainkan ada objek lain yang ikut terbawa, yaitu "Name Object".
Daftar Name ini bisa anda lihat pada menu "Names Manager" pada ribbon "Formula".
Secara umum bila anda tidak menggunakan fitur ini, "name" digunakan oleh excel untuk menyimpan alamat range print area pada worksheet.
Ketika ini diabaikan, file kerja anda yang anda gunakan terus menerus memiliki objek name yang semakin banyak. Tentu hal ini membuat file anda semakin lama dibuka, dan bisa saja crash.
Berikut saya berikan modul vba untuk menghapus seluruh name pada sebuah workbook

Sub DelAllNames()
    Dim nms
    Dim JmlName As Integer
    Set nms = ActiveWorkbook.Names
    JmlName = nms.Count 'hitung jumlah name
    For r = JmlName To 1 Step -1
    Application.StatusBar = CInt(r / JmlName * 100) & "% (sisa " & r & " dari " & JmlName & ")" 'untuk status bar
    nms(r).Delete 'hapus name
    Next
    Application.StatusBar = False 'matikan status bar
    MsgBox "Penghapusan name selesai"
End Sub

 

Tagged , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published.