Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
225,11 KB
Nội dung
“Đóng gói”tậptinExcel
Nhiều bạn đọc có yêu c
ầu “bảo mật” đối với những tậptinExcel giải quyết
những bài toán của riêng mình để có thể “phân phối” chuyên nghiệp. B
ài vi
sẽ trình bày các bước cách thức “đónggói” và tạo giao diện như một ph
ần
mềm bằng ngôn ngữ VB và người dùng phải cài đ
ặt hoặc điền CD key khi
mở tập tin.
1. Trong file Excel, bạn có thể viết một số đoạn code bằng ngôn ngữ VBA
xử lý dữ liệu trong file Excel hiện hành (và các file Excel khác n
ếu muốn). Các
đoạn code VBA này sẽ truy xuất dữ liệu của file Excel thông qua mô hình hư
ớng
đối tượng.
Thí dụ bạn có thể dùng các đối tượng ActiveWorkbook, Workbooks(<tên
>) đ
truy xuất workbook hiện hành hay workbook với tên xác định, hay các đối
tượng ActiveSheet hay Sheets(<tên>) để truy xuất worksheet hiện hành hay
worksheet với tên xác định. Thí dụ thủ tục CreateSheet sau đây sẽ tạo 1
worksheet mới (trong workbook hiện hành) có tên là "YourSheet", r
ồi tự động
nhập thông tin tọa độ của từng cell trong vùng cell từ A1tới D10:
Sub CreateSheet()
Dim rg As Range
Dim row As Integer, col As Integer
'tạo worksheet mới
Sheets.Add
'đặt tên cho worksheet mới
ActiveSheet.Name = "YourSheet"
'thiết lập vùng cell cần xử lý
Set rg = Range("A1:D10")
'nhập thông tin tọa độ cho từng cell
'duyệt theo hàng
For row = 1 To 10
'duyệt theo cột
For col = 1 To 4
rg.Cells(row, col).Value = "(" & row & "," & col & ")"
Next col
Next row
'lưu kết quả lên file
ActiveWorkbook.SaveAs "c:\YourWB.xls"
End Sub
Thật ra các đối
tượng ActiveWorkbook, Workbooks, ActiveSheet hay Sheets đư
ợc truy xuất
trong thủ tục trên chỉ là đối tượng con của đối tượng Application, đối tượng
Application miêu tả ứng dụng Excel đang chạy. Do đó nếu muốn dùng đư
ờng dẫn
tuyệt đối để truy xuất các đối tượng, thủ tục CreateSheet() trên có thể đư
ợc viết
lại như sau:
Sub CreateSheet()
Dim rg As Range
Dim row As Integer, col As Integer
'tạo worksheet mới
Application.Sheets.Add
'đặt tên cho worksheet mới
Application.ActiveSheet.Name = "YourSheet"
'thiết lập vùng cell cần xử lý
Set rg = Range("A1:D10")
'nhập thông tin tọa độ cho từng cell
'duyệt theo hàng
For row = 1 To 10
'duyệt theo cột
For col = 1 To 4
rg.Cells(row, col).Value = "(" & row & "," & col & ")"
Next col
Next row
'lưu kết quả lên file
Application.ActiveWorkbook.SaveAs "c:\YourWB.xls"
End Sub
Bây giờ nếu muốn chuyển các đoạn code VBA đã chạy tốt trong file Excel th
ành
ứng dụng VB 6.0 độc lập, bạn cần thực hiện một số công việc sau:
- Sử dụng thư viện "Microsoft Excel x.0 Object Library" chứa các đối
tượng Excel.Application,ActiveWorkbook, Workbooks, ActiveSheet,
Sheets
trong Project quản lý ứng dụng VB 6.0 của bạn.
- Viết code khởi tạo đối tượng Excel.Application miêu tả ứng dụng Excel, trư
ớc
khi sử dụng đối tượng này để truy xuất các đối tượng con của nó.
- Copy đoạn code VBA dùng các đối tượng bằng đường dẫn tuyệt đối đã ch
ạy tốt
vào đây.
- Sau khi xử lý dữ liệu của file Excel, viết code đóng đối
tượng Excel.Application lại.
2. Muốn bảo vệ phần mềm bởi người dùng bất hợp pháp, b
ạn có thể viết th
đoạn code kiểm tra password, chèn đoạn code này vào đầu phần mềm.
Để thấy rõ cách giải quyết các vấn đề vừa trình bày, chúng tôi xin gi
ới thiệu qui
trình điển hình để xây dựng 1 ứng dụng VB 6.0, nó sẽ yêu cầu người dùng nh
ập
password, kiểm tra password nhập với password hợp pháp được lưu trong
ứng
dụng (hay trên file dữ liệu), nếu không đúng thì ứng dụng sẽ dừng, còn n
ếu đúng
chương trình sẽ chạy tiếp. Chương trình g
ồm 1 form chính chứa 1 button Create,
khi người dùng click chuột button này, ứng dụng sẽ chạy Excel, tạo 1 sheet m
ới
có tên là "YourSheet", nhập tọa độ vào từng cell trong vùng cell t
ừ A1 tới D10,
lưu kết quả lên file "c:\YourWB.xls":
1. Chạy VB 6.0, khi cửa sổ New project hiển thị, chọn icon Standard EXE r
ồi
button Open để tạo mới Project chứa Form đơn giản.
2. Chọn menu Project.Components để hiển thị cửa sổ Components, duyệt t
ìm và
chọn thư viện có tên làMicrosoft Excel x.0 Object Library rồi OK để th
êm các
đối tượng trong thư viện này vào ToolBox của Project hiện hành.
3. Vẽ 1 button vào form, thíết lập lại thuộc tính (Name)=btnCreate, thuộc
tính Caption="Create".
4. Ấn kép chuột vào button vừa tạo để tạo thủ tục xử lý sự kiện click chuột v
ào
button rồi viết code cho thủ tục này như sau:
Option Explicit
'khai báo hàm API cần dùng
Private Declare Sub ExitProcess Lib "kernel32" (ByVal uExitCode As Long)
'định nghĩa hằng miêu tả password đã mật mã
Const ENPASS = "zpvsqbtt"
'hàm mật mã chuỗi password đơn giản
Function Encryph(pass As String) As String
Dim bytes() As Byte
Dim str As String
Dim i As Integer
bytes = StrConv(pass, vbFromUnicode)
str = ""
For i = 0 To UBound(bytes)
str = str & Chr(bytes(i) + 1)
Next i
Encryph = str
End Function
'thủ tục khởi tạo form
Private Sub Form_Load()
Dim pass As String
'hiển thị form nhập password
frmPassword.Show vbModal
pass = frmPassword.txtPassword
Unload frmPassword
'kiểm tra password nhập
If ENPASS <> Encryph(pass) Then
'nếu sai thì dừng ứng dụng
ExitProcess (1)
End If
'nếu đúng thì chạy tiếp bình thường
End Sub
'thủ tục phục vụ click button Create
Private Sub btnCreate_Click()
'định nghĩa các biến cần dùng
Dim Application As Excel.Application
Dim WorkBook As Excel.WorkBook
Dim wksSheet As Excel.Worksheet
Dim rg As Range
Dim row As Integer, col As Integer
'tạo ứng dụng Excel
Set Application = New Excel.Application
'tạo workbook Excel
Set WorkBook = Application.Workbooks.Add
'đoạn code VBA đã có sẵn từ file Excel
'tạo worksheet mới
Application.Sheets.Add
'đặt tên cho worksheet mới
Application.ActiveSheet.Name = "YourSheet"
'thiết lập vùng cell cần xử lý
[...]...Set rg = Range("A1:D10") 'nhập thông tin tọa độ cho từng cell 'duyệt theo hàng For row = 1 To 10 'duyệt theo cột For col = 1 To 4 rg.Cells(row, col).Value = "(" & row & "," & col & ")" Next col Next row 'lưu kết quả lên file Application.ActiveWorkbook.SaveAs "c:\YourWB.xls" 'dừng ứng dụng Excel Application.Quit Set Application = Nothing End Sub 5 Dời chuột về cửa... nhập sai password qui định bởi ứng dụng, ứng dụng sẽ dừng Nếu người dùng nhập đúng password thì form chính của ứng dụng sẽ hiển thị, lúc này nếu ngườ dùng ấn vào button Create thì đoạn code tạo đối tượng Excel và xử lý dữ liệu s chạy Theo PCWorld .
“Đóng gói” tập tin Excel
Nhiều bạn đọc có yêu c
ầu “bảo mật” đối với những tập tin Excel giải quyết
những bài toán. thức “đóng gói” và tạo giao diện như một ph
ần
mềm bằng ngôn ngữ VB và người dùng phải cài đ
ặt hoặc điền CD key khi
mở tập tin.
1. Trong file Excel,