Thư mục Windows Registry là nơi tập hợp và ghi nhớ các thông tin chính của ứng dụng, bao gồm các lựa chọn mặc định của người dùng. Trước khi Excel 97 ra đời, việc truy cập registry cần phải có phần mềm API. Với Excel 97 và các phiên bản kế nhiệm, bạn không cần đến API mà thay vào đó bạn có thêm 2 hàm chức năng VBA sau:
Trong phần hướng dẫn trực tuyến đã mô tả chi tiết về cách sử dụng 2 hàm này nên trong bài viết này tôi sẽ không đi sâu về nó. Tuy vậy, cần lưu ý rằng các hàm trên chỉ hoạt động được với từ khóa sau:
“HKEY_CURRENT_USER\Software\VB and VBA Program Settings”
Điều đó có nghĩa là bạn không thể truy cập bất kỳ từ khóa nào trong registry mà bạn muốn. Thay vào đó, các hàm chức năng này chỉ hữu ích cho việc lưu trữ thông tin liên quan đến Excel mà bạn muốn lưu lại giữa các phiên làm việc để tránh bị mất.
Ví dụ cụ thể
Hàm thủ tục con dưới đây đã được lưu trong mô-đun mã nguồn của tập tin ThisWorkbook, trong đó thể hiện cách thức hoạt động của hàm GetSetting và SaveSetting. Hàm sẽ tự khởi động khi bạn mở bảng tính này lên. Sẽ có 2 thông tin được hàm này truy xuất: một là số lần bạn mở bảng tính lên, hai là ngày giờ gần đây nhất mà bạn mở bảng tính lên. Tất cả 2 thông tin này sẽ được thông báo bằng hộp thoại dưới đây:
"Private Sub Workbook_Open() Dim Counter As Long, LastOpen As String, Msg As String ' Get setting from registry Counter = GetSetting("XYZ Corp", "Budget", "Count", 0) LastOpen = GetSetting("XYZ Corp", "Budget", "Opened", "") ' Display the information Msg = "This file has been opened " & Counter & " times." Msg = Msg & vbCrLf & "Last opened: " & LastOpen MsgBox Msg, vbInformation, ThisWorkbook.Name ' Update the information and store it Counter = Counter + 1 LastOpen = Date & " " & Time SaveSetting "XYZ Corp", "Budget", "Count", Counter SaveSetting "XYZ Corp", "Budget", "Opened", LastOpen End Sub"
Dưới đây là hình ảnh cho thấy vị trí những thông số trên xuất hiện ở đâu trong registry (bằng cách sử dụng ứng dụng regedit.exe của Windows)