ngaykhongmua167

New Member

Download miễn phí Bài giảng Liên kết giữa excel và visual basic 6.0





Dự án đầu tiên cho thấy cách tạo ActiveX DLL khá đơn giản. Kết quả Excel có thể thực
liên kết với VB6 qua DLL. Nhưng việc trao đổi trên bị giới hạn bởi vì tất cả các liên kết chỉ là
một hướng, Excel gọi DLL. Để nâng cao khả năng liên kết giữa Excel với VB 6.0, phải tạo
ra cấu trúc mà cho phép liên kết được truyền theo cả hai hướng. Trong dự án “Hello World”
ở trên, chúng ta mở rộng để ứng dụng có thể liên kết theo cả hai hướng, trong đó DLL là đối
tượng chính để các thành phần tham chiếu tới. DLL không thể tạo ra các hành động trong
nó mà chỉ đáp ứng những yêu cầu từ các ứng dụng khác sử dụng nó để làm việc. Sau đó
yêu cầu sẽ được thực hiện bởi vì DLL có thể liên kết trực tiếp với ứng dụng đã gọi nó ra.
Việc đầu tiên chúng ta sẽ làm cho có thể liên kết hai hướng giữa Excel và DLL bằng cách
cung cấp DLL với hướng để nhận biết được chương trình nào gọi



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

dụng Active DLL “Hello World” dưới đây sẽ giải thích một cách tạo liên kết từ Excel
tới DLL. Excel sẽ liên kết với DLL và DLL sẽ liên kết trở lại với Excel. Tiếp theo chúng ta sẽ
nghiên cứu cách sử dụng Form của VB 6.0 như là UserForm sẵn có trong Excel.
24.1. Tạo dự án ActiveX DLL
Khi mở chương trình VB 6.0 thì cửa sổ New Project hiện ra như hình 24-1. Trong trường
hợp cửa sổ New Project không hiện ra, bạn vào menu File/New Project. Tại cửa sổ New
Project chọn kiểu dự án ActiveX DLL. Sau khi bạn lựa chọn kiểu dự án và bấm vào nút
Open, VB 6.0 sẽ tạo ra một dự án mới ActiveX DLL.
3
Chương 24: Liên kết giữa Excel với Visual Basic 6.0
Tác giả: Phan Tự Hướng ([email protected])- Bộ môn Địa kỹ thuật -
Trường ĐH Kiến trúc HN
Hình 24-1: Cửa sổ New Project của VB 6.0
Chúng ta sẽ xây dựng ứng dụng “Hello World” đầu tiên, ActiveX DLL sẽ chỉ chứa hai
phần Project (dự án) và Class Module (hình 24-2). Dự án đó sẽ xác định tên của ứng dụng
trong DLL, và Class Module sẽ thể hiện các chức năng của DLL trong các chương trình khác.
Hình 24-2 thể hiện cấu trúc của một dự án mới ActiveX DLL trong cửa sổ Project. Nếu thấy
cửa sổ Project xuất hiện trông rất quen thuộc, điều đó không có ảnh hưởng gì cả. Bạn sẽ
tìm thấy môi trường giữa VB 6.0 và VBA giống nhau đến mức dễ gây nên sự xáo trộn khi
làm việc với chúng. Điều đó sẽ giúp bạn dễ dàng làm việc với VB 6.0 khi bạn đã có kinh
nghiệm về VBA. Chúng ta sử dụng cửa sổ Project trong VB 6.0 gần như tương tự với VBA.
Hình 24-2: Dự án lúc đầu Hình 24-3: Dự án đã đặt tên
Hình 24-4: Lưu Class Module “HelloWorld” dưới dạng file Class Files (*.cls)
Hãy thay đổi tên của Project thành AFirstProject, tên của Class1 thành HelloWorld bằng
cách gõ vào trong hộp Name của cửa sổ Properties của chúng như hình 24-6. Kết quả thay
4
Chương 24: Liên kết giữa Excel với Visual Basic 6.0
Tác giả: Phan Tự Hướng ([email protected])- Bộ môn Địa kỹ thuật -
Trường ĐH Kiến trúc HN
đổi thể hiện tại hình 24-3. Bạn sẽ thấy tên file trong ngoặc đơn nằm phía bên ngoài là thành
phần trong dự án, đó là một sự khác nhau giữa VBA và VB 6.0. Trong VBA, các thành phần
của dự án được lưu bên trong file riêng của Excel. Trong VB 6.0, tất cả các thành phần
được lưu giữ trong các file riêng biệt của dự án.
Sau đó bạn lưu giữ tên dự án đó lại với hai phần Project (dự án) và Class Module (hình
24-6) với tên mặc định đã đặt. Bạn sẽ thấy khi dự án đã được lưu thì tên dự án với đuôi xác
định sẽ hiển thị trong cửa sổ Project (hình 24-5).
Hình 24-5: Lưu dự án “AFirstProject” dưới dạng file Project Files (*.vbp)
24.1.1. Cách tạo liên kết đơn giản ActiveX DLL một hướng
Bây giờ chúng ta sẽ tìm hiểu cấu trúc của dự án ActiveX DLL hoàn chỉnh, hãy bổ sung
thủ tục để thực hiện công việc nào đó. Trong dự án “Hello World”, DLL sẽ cho hiện hộp
thông báo với nội dung “Hello World!” khi thực hiện lệnh. Việc đó sẽ được hoàn thành khi
bạn thêm cách tới Class Module “HelloWorld”, đó chính là thủ tục sẽ hiển thị hộp
thông báo khi được gọi. Việc thêm cách tới VB 6.0 Class Module sẽ làm việc tương
tự như trong VBA. Bạn bấm đúp chuột vào Class Module HelloWorld trong cửa sổ Project,
cửa sổ soạn code hiện ra. Thủ tục ShowMessage như sau (hình 24-6):
Public Sub ShowMessage()
MsgBox "Hello World!", vbInformation
End Sub
5
Chương 24: Liên kết giữa Excel với Visual Basic 6.0
Tác giả: Phan Tự Hướng ([email protected])- Bộ môn Địa kỹ thuật -
Trường ĐH Kiến trúc HN
Công việc thật đơn giản! Bây giờ chúng ta cần biên dịch ActiveX DLL của bạn và gọi
ra được từ ứng dụng Excel để hiển thị lời chào đó. Nhưng trước hết hãy biên dịch code đó.
Đầu tiên vào menu File trong cửa sổ VB 6.0, chọn Make AFirstProject.dll... (hình 24-7).
Cửa sổ Make Project hiện ra như hình 24-8, chọn nút OK để tạo AFirstProject.dll trong thư
mục chứa dự án của bạn.
Hình 24-6: Tạo thủ tục ShowMeesage trong Class Modules HelloWorld
Tiếp theo bạn sẽ làm gì trong Excel? Công việc đó rất dễ dàng khiến bạn phải ngạc
nhiên. Bước đầu tiên khởi động Excel, sau đó bạn mở cửa sổ VBE. Vào menu
Tools/References..., cửa sổ References - VBAProject hiện ra như hình 24-9. Tìm dự án
AFirstProject.dll trong danh sách Available References và chọn. Nếu dự án đó không xuất
hiện trong danh sách thì bạn bấm nào nút Browse... để tìm kiếm nơi lưu trữ, sau đó bấm OK
để xác nhận.
6
Chương 24: Liên kết giữa Excel với Visual Basic 6.0
Tác giả: Phan Tự Hướng ([email protected])- Bộ môn Địa kỹ thuật -
Trường ĐH Kiến trúc HN
Hình 24-7: Tạo DLL cho dự án AFirstProject
7
Chương 24: Liên kết giữa Excel với Visual Basic 6.0
Tác giả: Phan Tự Hướng ([email protected])- Bộ môn Địa kỹ thuật -
Trường ĐH Kiến trúc HN
Hình 24-8: Đặt tên cho dự án DLL của bạn
Hình 24-9: Xác nhận dự án AFirstProject trong file
Hình 24-10: Dự án của bạn được tạo trong thư mục VB6.0 với đầy đủ các thành phần
Sau đó lưu workbook với tên Hello.xls trong thư mục chứa dự án đó, việc lưu trong cùng
thư mục giúp bạn dễ dàng tìm kiếm và sử dụng chứ không phải bắt buộc. Trong thực tế,
DLL có thể sử dụng ở mọi nơi trong máy tính. Công việc tiếp theo là thêm module vào trong
cửa sổ VBE và xây dựng thủ tục ShowDLLMessage như sau:
Public Sub ShowDLLMessage()
8
Chương 24: Liên kết giữa Excel với Visual Basic 6.0
Tác giả: Phan Tự Hướng ([email protected])- Bộ môn Địa kỹ thuật -
Trường ĐH Kiến trúc HN
'Khai báo biến đối tượng
Dim HelloWorld As AFirstProject.HelloWorld
Set HelloWorld = New AFirstProject.HelloWorld
'Thực hiện thủ tục ShowMessage trong class HelloWorld
HelloWorld.ShowMessage
Set HelloWorld = Nothing
End Sub
Ban đầu, bạn sẽ thấy công việc khó khăn khi sử dụng các thủ tục xây dựng trong DLL.
Tuy nhiên khi hiểu rõ cách sử dụng DLL bằng VBA, bạn sẽ dễ dàng thực hiện
được. Trong ví dụ trên, các đối tượng trong DLL được nhận biết trong Excel như sau:
Bảng 24-1: Mô tả đối tượng và chức năng của nó trong DLL
Đối tượng Mô tả
AfirstProject Là thư viện quản lý các đối tượng trong dự án AFirstProject, dự án này
quản lý các Classe Module. VBA tự động nhận biết bằng chức năng
Auto List Members (hình 24-11, 24-12)
HelloWorld Là Classe Module chứa trong dự án AFirstProject (hình ). Một dự án sẽ
có một hay nhiều Classe Module. VBA tự động nhận biết bằng chức
năng Auto List Members (hình 24-13).
ShowMessage Là thủ tục chứa trong Classe Module HelloWorld. Mỗi Classe Module
có thể chứa một hay nhiều thủ tục.VBA tự động nhận biết bằng chức
năng Auto List Members (hình 24-14).
9
Chương 24: Liên kết giữa Excel với Visual Basic 6.0
Tác giả: Phan Tự Hướng ([email protected])- Bộ môn Địa kỹ thuật -
Trường ĐH Kiến trúc HN
Hình 24- 11: Thư viện AFirstProject và các đối tượng chứa bên trong
Hình 24-12: VBA tự nhận biết thư viện AFirstProject bằng chức năng Auto List Memmbers
Hình 24-13: VBA tự nhận biết Classe HelloWorld bằng chức năng Auto List Memmbers
Hình 24-14: VBA tự nhận biết thủ tục ShowMessage trong Classe HelloWorld
Khi thực thi thủ tục ShowDLLMessage, kết quả thể hiện như tại hình 24-15. Bạn sẽ thấy
kết quả tạo hộp nhắn tin này tương tự khi sử dụng ...
 

Các chủ đề có liên quan khác

Top