V
vothanhthu
Guest
1. Tại sao cần lập trình DLL cho VBA
Hiện nay, nếu nói về các phương pháp bảo mật code VBA trên thế giới chúng ta sẽ có: khóa VBAProject, khóa Unviewable (biến hóa nhiều kiểu), ẩn Module, mã hóa code, nạp DLL... và có thể còn nhiều phương pháp Thứ chưa biết. Trong số tất cả các phương pháp đó, sử dụng phương pháp nạp DLL vào Excel là an toàn nhất tính đến thời điểm hiện tại. Bằng cách này, ta sẽ viết code VBA trong file DLL thông qua một ngôn ngữ khác, lấy đó làm thư viện, dùng Excel trích các thư viện trong DLL ra dùng. Về nguyên tác, Code vẫn sẽ nằm trong file DLL, Excel chỉ lấy ra mà dùng, việc bảo mật sẽ phụ thuộc hoàn toàn vào file DLL. Chắc các bạn cũng biết, khả năng bảo mật của DLL là cực kì tốt, hơn rất nhiều lần VBA.
Trong bài viết này, Thứ sẽ hướng dẫn các bạn các bước cơ bản để viết được ngôn ngữ VBA trong file DLL, nạp vào Excel để xử dụng. Thứ sẽ sử dụng ngôn ngữ VB6, ngôn ngữ gần với VBA nhất cho các bạn dễ hiểu.
2. Làm thế nào để viết code được trong file DLL
Việc đầu tiên bạn cần làm là phải có ngôn ngữ VB6, Thứ sử dụng chương trình Visual Studio 6.0. Các bạn có thể tải tại
Thứ lưu ý, chúng ta cần phân biệt rõ ràng các ngôn ngữ VB để tranh có lỗi không cần thiết khi lập trình, các bạn có thể tham khảo tại
Khi mở phần mềm, chúng ta sẽ tạo một dự án mới dạng ActiveX DLL
Bên cửa sổ chúng ta sẽ đổi tên Project1 và Class1 lại, việc này quan trọng vì sẽ quyết định đến khả năng gọi ngược khi nạp vào Excel. Chúng ta cần tập thói quen đổi tên Module, Class phù hợp với code. Ở đây Thứ sẽ đổi Project1 thành TuhocVBA, và Class1 thành Test
Ví dụ, Thứ có một đoạn code đơn giản như thế này trong VB6
Thứ sẽ Save lại thành file DLL bằng File > Make TuhocVBA.dll...
3. Làm sao để nạp DLL vào Excel và chạy chúng
Mở File Excel cần chạy code. Vào cửa sổ lập trình VBA (Ctrl + F11). Chọn Tool > References > Browser > Chọn địa chỉ TuhocVBA.dll > OK
Và Thứ sẽ viết code khai báo lấy code DLL trong VBA như sau
Và đây là kết quả
4. Làm thế nào để lấy dữ liệu Excel vào VB6
Còn nữa....!
Hiện nay, nếu nói về các phương pháp bảo mật code VBA trên thế giới chúng ta sẽ có: khóa VBAProject, khóa Unviewable (biến hóa nhiều kiểu), ẩn Module, mã hóa code, nạp DLL... và có thể còn nhiều phương pháp Thứ chưa biết. Trong số tất cả các phương pháp đó, sử dụng phương pháp nạp DLL vào Excel là an toàn nhất tính đến thời điểm hiện tại. Bằng cách này, ta sẽ viết code VBA trong file DLL thông qua một ngôn ngữ khác, lấy đó làm thư viện, dùng Excel trích các thư viện trong DLL ra dùng. Về nguyên tác, Code vẫn sẽ nằm trong file DLL, Excel chỉ lấy ra mà dùng, việc bảo mật sẽ phụ thuộc hoàn toàn vào file DLL. Chắc các bạn cũng biết, khả năng bảo mật của DLL là cực kì tốt, hơn rất nhiều lần VBA.
Trong bài viết này, Thứ sẽ hướng dẫn các bạn các bước cơ bản để viết được ngôn ngữ VBA trong file DLL, nạp vào Excel để xử dụng. Thứ sẽ sử dụng ngôn ngữ VB6, ngôn ngữ gần với VBA nhất cho các bạn dễ hiểu.
2. Làm thế nào để viết code được trong file DLL
Việc đầu tiên bạn cần làm là phải có ngôn ngữ VB6, Thứ sử dụng chương trình Visual Studio 6.0. Các bạn có thể tải tại
Bạn cần đăng nhập để thấy link
hoặc bất cứ đâu từ InternetThứ lưu ý, chúng ta cần phân biệt rõ ràng các ngôn ngữ VB để tranh có lỗi không cần thiết khi lập trình, các bạn có thể tham khảo tại
Bạn cần đăng nhập để thấy link
Khi mở phần mềm, chúng ta sẽ tạo một dự án mới dạng ActiveX DLL
Bạn cần đăng nhập để thấy đính kèm
Bên cửa sổ chúng ta sẽ đổi tên Project1 và Class1 lại, việc này quan trọng vì sẽ quyết định đến khả năng gọi ngược khi nạp vào Excel. Chúng ta cần tập thói quen đổi tên Module, Class phù hợp với code. Ở đây Thứ sẽ đổi Project1 thành TuhocVBA, và Class1 thành Test
Bạn cần đăng nhập để thấy đính kèm
Ví dụ, Thứ có một đoạn code đơn giản như thế này trong VB6
Mã:
Public sub Goi_Msg
Msgbox "Hello TuhocVBA", vbInformation, "Thong bao"
End sub
Bạn cần đăng nhập để thấy đính kèm
3. Làm sao để nạp DLL vào Excel và chạy chúng
Mở File Excel cần chạy code. Vào cửa sổ lập trình VBA (Ctrl + F11). Chọn Tool > References > Browser > Chọn địa chỉ TuhocVBA.dll > OK
Bạn cần đăng nhập để thấy đính kèm
Và Thứ sẽ viết code khai báo lấy code DLL trong VBA như sau
Mã:
Public Sub Goi_DLL
Dim ShowMsg as TuhocVBA.Test 'Khai báo biến đối tượng
Set ShowMsg = New TuhocVBA.Test 'Set ShowMsg đến Class Test
ShowMsg.Goi_Msg 'Gọi thủ tục Goi_Msg
End sub
Bạn cần đăng nhập để thấy đính kèm
4. Làm thế nào để lấy dữ liệu Excel vào VB6
Còn nữa....!