Khi làm việc trong Excel, đôi khi chúng ta muốn mã hóa dữ liệu cho mục đích bảo mật. Chúng ta có thể dễ dàng tạo hàm mã hóa (encrypt function) để mã hóa dữ liệu trong Excel. Ở đây, chúng ta sẽ trình bày quy trình từng bước để tạo hàm mã hóa trong Excel.
Tạo hàm Mã hóa trong Excel: Quy trình từng bước
Phần này trình bày quy trình từng bước tạo hàm mã hóa trong Excel. Một đoạn mã VBA đơn giản sẽ giải quyết vấn đề. Hãy làm theo các bước dưới đây.
BƯỚC 1: Chuẩn bị dữ liệu cho hàm Mã hóa
- Trước tiên, tạo bộ dữ liệu trên trang tính. Để minh họa, chúng ta có bộ dữ liệu gồm Nhân viên bán hàng (Salesman), Lương (Salary), Bang/Thành phố (State) của một công ty. Chúng ta sẽ mã hóa dữ liệu cột Lương.

BƯỚC 2: Mở cửa sổ VBA trong Excel
- Tiếp theo, vào thẻ Developer (Nhà phát triển) và chọn Visual Basic để mở cửa sổ VBA.
- Hoặc bạn có thể nhấn Alt + F11 để mở nhanh.

BƯỚC 3: Nhập mã VBA vào Module cho hàm Mã hóa
- Sau đó, chọn Insert (Chèn) > Module từ cửa sổ VBA.

- Một cửa sổ Module hiện ra.
- Viết mã sau vào đó:
Private Function iStrTPsd(ByVal Txt As String) As Long
Dim xVl As Long, xCha As Long, xSf1 As Long, xSf2 As Long
Dim J As Integer, xLn As Integer
xLn = Len(Txt)
For J = 1 To xLn
xCha = Asc(Mid$(Txt, J, 1))
xVl = xVl Xor (xCha * 2 ^ xSf1)
xVl = xVl Xor (xCha * 2 ^ xSf2)
xSf1 = (xSf1 + 7) Mod 19
xSf2 = (xSf2 + 13) Mod 23
Next J
iStrTPsd = xVl
End Function
Private Function iEncryption(ByVal Pd As String, ByVal InTx As String, Optional ByVal Encc As Boolean = True) As String
Dim xOfset As Long, xLn As Integer, J As Integer, xCha As Integer, xOutTx As String
xOfset = iStrTPsd(Pd)
Rnd -1
Randomize xOfset
xLn = Len(InTx)
For J = 1 To xLn
xCha = Asc(Mid$(InTx, J, 1))
If xCha >= 32 And xCha <= 126 Then
xCha = xCha - 32
xOfset = Int((96) * Rnd)
If Encc Then
xCha = ((xCha + xOfset) Mod 95)
Else
xCha = ((xCha - xOfset) Mod 95)
If xCha < 0 Then xCha = xCha + 95
End If
xCha = xCha + 32
xOutTx = xOutTx & Chr$(xCha)
End If
Next J
iEncryption = xOutTx
End Function
Sub xEncryption_Range()
Dim xxRg As Range, xxPsd As String, xxTxt As String, xxEnc As Boolean
Dim xxRet As Variant, xxCell As Range
On Error Resume Next
xxTxt = ActiveWindow.RangeSelection.Address
Set xxRg = Application.InputBox("You need to select range:", "Excel Encryption", xxTxt, , , , , 8)
Set xxRg = Application.Intersect(xxRg, xxRg.Worksheet.UsedRange)
If xxRg Is Nothing Then Exit Sub
xxPsd = InputBox("Type your password:", "Excel Encryption")
If xxPsd = "" Then MsgBox "Your password can't be empty", , "Excel Encryption": Exit Sub
xxRet = Application.InputBox("Insert 1 to encrypt cells or Insert 2 to decrypt cells", "Excel Encryption", , , , , , 1)
If TypeName(xxRet) = "Boolean" Then Exit Sub
If xxRet > 0 Then xxEnc = (xxRet Mod 2 = 1)
For Each xxCell In xxRg
If xxCell.Value <> "" Then xxCell.Value = iEncryption(xxPsd, xxCell.Value, xxEnc)
Next
End Sub

BƯỚC 4: Chạy mã để Mã hóa dữ liệu
- Tiếp theo, nhấn nút Run (Chạy) từ cửa sổ VBA.

- Ngay lập tức, hộp thoại Macros xuất hiện. Nhấp vào nút Run.

- Sau đó, hộp thoại Excel Encryption xuất hiện.
- Chọn vùng ô cần mã hóa. Nhấn OK.

- Hộp thoại khác hiện ra.
- Nhập mật khẩu. Nhấn OK.

- Hộp thoại thứ ba hiện ra.
- Nhập 1 để mã hóa dữ liệu. Nhấn OK.

Kết quả cuối cùng
- Quay lại trang tính, dữ liệu vùng đã chọn đã được mã hóa (hiển thị thành ký tự vô nghĩa).

- Để giải mã (decrypt), chạy mã lại và làm theo các bước trước.
- Chỉ khác: nhập 2 vào hộp thoại cuối cùng thay vì 1.
- Quan trọng: Phải nhập cùng mật khẩu dùng khi mã hóa.

- Dữ liệu mã hóa sẽ được giải mã trở về trạng thái ban đầu.

Đọc thêm: Cách mã hóa nội dung ô trong Excel
Cách Mã hóa tệp Excel bằng Mật khẩu (File Level)
Phần này trình bày quy trình bảo vệ tệp Excel bằng mật khẩu để mở tệp.
- Vào thẻ File trên Ribbon Excel.

- Chọn Save a Copy (Lưu bản sao) từ ngăn bên.

- Chọn More options (Thêm tùy chọn) từ cửa sổ hiện ra.

- Chọn Tools (Công cụ) > General Options (Tùy chọn chung) từ cửa sổ tiếp theo.

- Nhập mật khẩu vào mục Password to open (Mật khẩu để mở) trong hộp thoại General Options. Nhấn OK.

- Nhập lại mật khẩu trong hộp thoại Confirm Password (Xác nhận mật khẩu). Nhấn OK.

- Lưu tệp.
- Từ lần sau, bạn phải nhập mật khẩu để mở tệp Excel.

Đọc thêm: Cách giải mã tệp Excel không cần mật khẩu
Tải tệp thực hành
Bạn có thể tải tệp thực hành từ đây.
Kết luận
Trong bài viết này, chúng ta đã trình bày quy trình dễ dàng từng bước để mã hóa dữ liệu trong Excel. Nếu có thắc mắc hoặc góp ý, vui lòng để lại bình luận.
Các bài viết liên quan
- Cách xóa mã hóa khỏi Excel
- [Đã giải quyết!]: Không thể mở tệp Excel đã mã hóa
<< Quay lại: Encryption in Excel | Excel Protect | Learn Excel
Nhận miễn phí Bài tập Excel nâng cao có lời giải!