Şifre ile ilgili basit bir makro kodudur. Auto_Open kullanarak basit bir şifre kontrolü yapıyoruz. Eğer üst üste 3 kez yanlış şifre girilirse (şifre: 123) çalışma kitabını kapatıyor.
Option Explicit
Sub Auto_Open()
Static sayac As Integer
Dim kalan As Integer
Do
If sayac = 3 Then
ThisWorkbook.Close False
Else
kalan = 3 - sayac
If InputBox("Şifreyi girin." & " (Kalan Deneme: " & kalan & ")") = "123" Then
GoTo devam
Else
sayac = sayac + 1
End If
End If
Loop
devam:
End Sub
Option Explicit
Sub Auto_Open()
'--------------------------------------------------
'Kaç kere yalnış şifre girildiğini statik değişkenle
'saydıracağız. Static kullanmamızın sebebi de şu:
'Normalde bir değişken değer tutma işlemini kod bitene
'kadar yapar. Biz işlem bittikten sonra da bu değeri
'kullanabilmeliyiz. Kod sonraki çalışmalarında
'bu değer üzerinden hareket edebilecek ve 3 kere
'şifre hakkını etkili bir şekilde uygulayabileceğiz.
'--------------------------------------------------
Static sayac As Integer
'--------------------------------------------------
'Kalan deneme sayısı için işlem yapıyoruz.
'Bunun sonucunu değişkene aktarıyoruz.
'--------------------------------------------------
Dim kalan As Integer
'--------------------------------------------------
'Döngü ile işlem yap.
'--------------------------------------------------
Do
'--------------------------------------------------
'sayac değişkeninin değeri 3'e ulaştıysa işlem yap.
'--------------------------------------------------
If sayac = 3 Then
'--------------------------------------------------
'Çalışma kitabını kapat.
'--------------------------------------------------
ThisWorkbook.Close False
Else
'--------------------------------------------------
'Kalan deneme sayısını hesapla.
'--------------------------------------------------
kalan = 3 - sayac
'--------------------------------------------------
'Şifreyi sor. Doğru ya da yanlış girilmesine göre işlem yap.
'--------------------------------------------------
If InputBox("Şifreyi girin." & " (Kalan Deneme: " & kalan & ")") = "123" Then
'--------------------------------------------------
'Eğer şifre doğru girildiyse şifre kontrolü
'kodlarından komple çık. Bunun sonucunda
'çalışma kitabını açacak.
'--------------------------------------------------
GoTo devam
Else
'--------------------------------------------------
'Eğer şifre yanlışsa sayacı 1 artır.
'--------------------------------------------------
sayac = sayac + 1
End If
End If
Loop
devam:
End Sub