Yeni bir Paket Programlar dersi makalesi ile birlikteyiz.
Excel programı ile yapılan profesyonel uygulamalarda kodların korunması, üçüncü şahıslar tarafından kullanılmasının engellenmesi, projenin dağıtılmasında kodların silinmesinin ya da değiştirilmesinin önlenmesi en önemli sorunlardan birini oluşturmaktadır. Programcı kodların korunması amacıyla VBA kısmında yazılan makrolar ve modüller için şifre koymaktadır.
Koruma amacıyla oluşturulan bu şifreler zaman içerisinde unutulmaktadır. Unutulan bu şifrenin sıfırlanması için İnternette değişik programları indirmeniz ve bunları kullanmanız gerekir. Ancak indirilen bu programlardan bazılarının süreli ve sınırlı olması, bazılarının virüslü olması, bazılarının da reklam amaçlı birçok web sayfasını tarayıcıya eklemesi kullanıcıları zor durumda bırakmaktadır.
VBA şifrelerini VBA kodlarıyla sıfırlamaya ne dersiniz. Aşağıda vereceğim makroyu Excel 2003 ve aşağı sürümlerinde kullanarak şifreleri sıfırlayabilirsiniz. Yeni bir Excel çalışma kitabı açalım. Geliştirici sekmesinde yer alan nesnelerden CommandButton ekleyelim. Butonun Caption özelliğini “VBA Şifresini Sıfırla” olarak değiştirelim. Çalışma kitabımızın görüntüsü aşağıdaki gibi olacaktır.

Şimdi butonun Click olayını düzenleyelim.
Private Sub CommandButton1_Click()
Dim x As Byte
Dim y As Byte
Dim z As Byte
Dim fd As FileDialog
Dim filePath
On Error GoTo Hata
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.AllowMultiSelect = False
.InitialView = msoFileDialogViewWebView
.InitialFileName = ThisWorkbook.Path & "\"
.Filters.Clear
.Filters.Add "Excel Files", "*.xls, *.xla"
If .Show = -1 Then filePath = fd.SelectedItems(1)
End With
Set fd = Nothing
DoEvents
Close #1
Open filePath For Random As #1 Len = 1
i = 1
Do Until EOF(1)
Get #1, i, x
If x = 68 Then
Get #1, i + 1, y
If y = 80 Then
Get #1, i + 2, z
If z = 66 Then
Put #1, i + 2, CByte(0)
MsgBox "VBA şifresi sıfırlandı"
Close #1
Exit Sub
End If
End If
End If
i = i + 1
Loop
MsgBox "VBA şifresi bulunamadı"
Close #1
Exit Sub
Hata:
MsgBox "Şu hata oluştu: " & Err.Description
Close #1
End Sub
Yukarıdaki kodların görevini kısaca açıklayalım. Butona bastığınızda VBA şifresini sıfırlayacağınız dosyayı seçmek için ekrana bir diyalog penceresi gelir. Bu pencere yardımı ile dosyayı seçiniz. Daha sonra Aç butonuna basarak şifrenin sıfırlanmasını bekleyiniz. Şifrenin sıfırlandığı dosyayı açtığınızda ekrana gelen hata mesajlarını Evet diyerek geçiniz. Böylece şifrenin sıfırlandığını görebilirsiniz.
Bu kodların Excel 2003 ve önceki sürümler için geçerli olduğunu unutmayınız.
2007 ve üzeri versiyonlarda şifreleri sıfırlamak için aşağıdaki makaleyi okuyabilirsiniz.
Unutulan Excel 2010 VBA Şifresini Sıfırlama