Để bảo vệ một tập tin Excel, bạn có thể chọn Tools > Protection > Protect Workbook. Nếu bạn muốn thiết kế một form riêng để làm chuyện này thì cũng được. Ví dụ sau đây minh họa cách tạo một form trên Excel. Việc kiểm tra 3 lần gõ mật khẩu thì bạn làm tương tự.
Trước tiên, bạn tạo một workbook mới trên Excel, đặt lại tên Sheet1 là Du Lieu (rồi gõ vào Sheet1 dữ liệu tùy ý để sau này kiểm tra), Sheet3 là Login. Vì sheet đầu tiên bao giờ cũng có dữ liệu, bạn không nên cho nó active (mặc định mỗi lần mở workbook), nếu không như thế sẽ mất đi tính bảo mật. Còn sheet Login nên là một sheet chẳng có dữ liệu gì cả, form kiểm tra mật khẩu sẽ được hiển thị trên sheet này.
Nhấn phím Alt+F11 hoặc chọn Tools > Macro > Visual Basic Editor để mở cửa sổ VBA của Excel. Cách soạn thảo VBA trong Excel tương tự như trong Access. Trong cửa sổ VBA, chọn Insert > UserForm để tạo một form mới. Bạn sử dụng các công cụ trên Toolbox để thiết kế form như hình 1. Đặt tên form là frmLogin, tên nút lệnh OK là cmdOK, tên nút lệnh Cancel là cmdCancel, rồi gõ đoạn mã 1 vào (bấm kép lên form để mở cửa sổ soạn thảo, hoặc bấm-phải chuột vào tên form trong cửa sổ Project – VBAProject).
Quay về Excel, chọn Tools > Macro > Macros. Trên hộp thoại Macro, gõ tên Auto_Open vào ô Macro name, bấm Create để mở cửa sổ VBA và gõ đoạn mã sau đây:
Sub Auto_Open()
frmLogin.Show
End Sub
Auto_Open là một macro tự động chạy mỗi lần workbook được mở. Đoạn mã trên hiển thị form frmLogin mỗi lần workbook được mở.
Để các macro có thể tự động chạy, bạn phải hạ mức security xuống Medium hoặc Low: quay về Excel, chọn Tools > Macro > Security để mở hộp thoại Security, trong thẻ Security Level chọn Medium (người sử dụng sẽ quyết định macro được chạy hay không) hoặc Low, bấm OK. Bạn đóng workbook rồi mở lại để kiểm tra.
Đoạn mã 1
Const sMatKhau = “echip”
Private Sub cmdCancel_Click()
MsgBox “Rat tiec vi ban khong chung minh duoc minh co quyen mo workbook nay!”
ActiveWorkbook.Close
End Sub
Private Sub cmdOK_Click()
With TextBox1
If .Text = sMatKhau Then
ActiveWorkbook.Sheets(“Du Lieu”).Activate
Unload Me
Exit Sub
End If
MsgBox “Mat khau khong dung!”
.SetFocus
End With
End Sub
Private Sub UserForm_Initialize()
ActiveWorkbook.Sheets(“Login”).Activate
With TextBox1
.Text = “”
.PasswordChar = “*”
End With
End Sub
Save lại file Exel, thoát khỏi môi trường làm việc Exel và mở lại file vừa tạo để xem kết quả