Hướng dẫn tạo và sử dụng Module Class.

Liên hệ QC

sealand

Thành viên gạo cội
Tham gia
16/5/08
Bài viết
4,883
Được thích
7,688
Giới tính
Nam
Nghề nghiệp
Kế Toán
Mình thấy trong VBA có 3 loại Module:
1/Module độc lập: Đây là loại độc lập dùng có tính Public trong file và đã có nhiều trên GPE.
2/Module kèm theo các đối tượng: Form, sheet v.v...đây cũng là loại khá quen thuộc với GPE.
3/Module class: Đây là các đơn thể dùng chung. Nó được tạo lập 1 lần và có thể sử dụng nhiều lần nhiều nơi. Giống như 1 cuốn tài liệu tại thư viện có thể nhiều người ở nhiều lớp, nhiều khoa đều có thể tham khảo. (Mình viết theo cách hiểu của mình, nếu sai mọi người đính chính giùm) .Nó làm cho chương trình gọn gàng và khoa học hơn.

Nhưng cách tạo ra nó và sử dụng nó trong môi trường VBA như thế nào chưa thấy GPE đề cập thấu đáo. Vậy mong các bạn có chuyên môn sâu về vấn đề này dành chút thời gian cho xin hướng dẫn, giảng giải, ví dụ để anh em học tập với. Rất mong từ từ, từ đơn giản đến phức tạp.
Xin cám ơn trước.
 
Class có thể tạo ra đối tượng (kèm theo phương thức, thuộc tính) theo ý muốn của bạn, đã có trên diễn đàn, bạn chịu khó tìm đi.
 
Upvote 0
Mình thấy trong VBA có 3 loại Module:
1/Module độc lập: Đây là loại độc lập dùng có tính Public trong file và đã có nhiều trên GPE.
2/Module kèm theo các đối tượng: Form, sheet v.v...đây cũng là loại khá quen thuộc với GPE.
3/Module class: Đây là các đơn thể dùng chung. Nó được tạo lập 1 lần và có thể sử dụng nhiều lần nhiều nơi. Giống như 1 cuốn tài liệu tại thư viện có thể nhiều người ở nhiều lớp, nhiều khoa đều có thể tham khảo. (Mình viết theo cách hiểu của mình, nếu sai mọi người đính chính giùm) .Nó làm cho chương trình gọn gàng và khoa học hơn.

Nhưng cách tạo ra nó và sử dụng nó trong môi trường VBA như thế nào chưa thấy GPE đề cập thấu đáo. Vậy mong các bạn có chuyên môn sâu về vấn đề này dành chút thời gian cho xin hướng dẫn, giảng giải, ví dụ để anh em học tập với. Rất mong từ từ, từ đơn giản đến phức tạp.
Xin cám ơn trước.

Về Class Module mình đã đưa lên lâu rồi, tuy nhiên nó chưa phải là hướng dẫn chi tiết

Để hiểu công dụng của Class trong VBA, bạn đọc các ví dụ của mình theo link dưới đây:
http://www.giaiphapexcel.com/forum/showthread.php?t=3868

Có time mình sẽ nói chi tiết sau.
 
Upvote 0
Class có thể tạo ra đối tượng (kèm theo phương thức, thuộc tính) theo ý muốn của bạn, đã có trên diễn đàn, bạn chịu khó tìm đi.


Về Class Module mình đã đưa lên lâu rồi, tuy nhiên nó chưa phải là hướng dẫn chi tiết

Để hiểu công dụng của Class trong VBA, bạn đọc các ví dụ của mình theo link dưới đây:
http://www.giaiphapexcel.com/forum/s...ead.php?t=3868

Có time mình sẽ nói chi tiết sau.
Thật vui khi nhận được sự quan tâm của các bạn. Mình cũng đã tìm hiểu trên diễn đàn các bài viết liên quan trong đó có cả 1 số bài của anh Duyệt nữa. Đồng thời, mình cũng đã tìm hiểu trên các diễn đàn khác. Thú thật, nó cứ mông lung làm sao ấy, thật khó hiểu. Thậm chí trong các tài liệu viết thường người ta đề cập tới vấn đề này rất sơ sài như 1 phần mở rộng mà thôi. Thật khó khăn cho những người tự học như mình.

Với sự chân tình cởi mở truyền thống của GPE mình hy vọng 1 ngày nào đó bọn mình tiệm cận được kỹ thuật này của VB, VBA và 1 số phần mềm khác như VS Foxpro...
Tất nhiên, nó khá rộng nên cũng mong các bạn thi thoảng dành cho chút thời gian quý báu của minh nha.
 
Upvote 0



Thật vui khi nhận được sự quan tâm của các bạn. Mình cũng đã tìm hiểu trên diễn đàn các bài viết liên quan trong đó có cả 1 số bài của anh Duyệt nữa. Đồng thời, mình cũng đã tìm hiểu trên các diễn đàn khác. Thú thật, nó cứ mông lung làm sao ấy, thật khó hiểu. Thậm chí trong các tài liệu viết thường người ta đề cập tới vấn đề này rất sơ sài như 1 phần mở rộng mà thôi. Thật khó khăn cho những người tự học như mình.

Với sự chân tình cởi mở truyền thống của GPE mình hy vọng 1 ngày nào đó bọn mình tiệm cận được kỹ thuật này của VB, VBA và 1 số phần mềm khác như VS Foxpro...
Tất nhiên, nó khá rộng nên cũng mong các bạn thi thoảng dành cho chút thời gian quý báu của minh nha.
Em cũng cảm thấy thế!
Giá như em có thê hiểu được nó, em tin chắc rằng em có thể ra được các bài tập ví dụ 1 cách dể hiểu nhất (như em đã từng làm) ---> Vì thông thường "nói" tràng giang đại hải vẫn không bằng 1 ví dụ đơn giản nhất
Thật đáng tiếc là có đôi lúc phải đi thu lượm kiến thức tại 1 diển đàn khác (trong khi diển đàn ta cao thủ nhiều như sao trên trời)
 
Upvote 0
Em cũng đồng tình với bác đó. Từ trước đến giờ phần Class này em toàn là copy/paste ko hà?! Chưa tự viết thành công 1 cái nào cả? Vậy các bác nên hướng dẫn rõ hơn từng dòng lệnh và tại sao viết như vậy? Cái nào là không thay đổi và cái nào là sẽ thay đổi trong codeClass?
Thường thì em thấy Class chỉ điều chỉnh chương trình sâu thôi! Như vị trí Form, khoảng cách, hay min/max,... vậy nó có thể dùng chung như thế nào khi tương tác ở dạng Function hay Sub?
Chưa nói là những cú pháp dùng trong Class có nhiều sự khác biệt quá? Không theo 1 quy tắc nào cả? Vậy phải làm sao?
Thôi bác cứ đưa ví dụ và giải thích luôn 1 thể để chúng em còn được tường minh với!
Thân.
 
Upvote 0
Mình thấy không hẳn vậy, ví dụ : class có thể tạo hẳn 1 cái Form "Hello GPE"có đầy đủ các đối tượng . Nếu nhập Pass thì thục hiên còn nếu sai thì bye! Thậm chí bất cứ File nào trong nhóm đều có thể gọi Form này. Thấy thì vậy nhưng đến nơi chắc còn hơn 70 "kiếp nạn" nữa.
 
Upvote 0
Các ví dụ mình viết chính là minh họa về điểm khác biệt của nó với các nhóm khác (như module). Các bạn sử dụng Excel, hay dùng Range, Cells, ActiveSheet, ActiveCell,.... chúng được gọi là những đối tượng (Objects), chúng được xây dựng trên cơ sở Class Module đó. Như vậy, nếu bạn muốn tạo một cái đối tượng MyRange có các thủ tục, thuộc tính, sự kiện như của Excel thì sẽ phải dùng Class. Dùng Class chính là một cách để quy hạch mã theo đối tượng làm việc cho một công việc nào đó. Nó có thể được nhân bản thêm nhiều đối tượng khác một cách độc lập. Với Module, theo đúng nghĩa nó là trung tâm code để dùng chung cho mọi đối tượng và không thể nhân bản và truy cập sâu vào đối tượng đã có.

Vì nhu cầu nhiều thành viên muốn mở rộng hơn về kỹ thuật lập trình Class Module trong VBA hay VB6, sắp tới thu xếp công việc chắc tôi sẽ có bài nói chi tiết về vấn đề này. Hy vọng các thành viên khác cùng tham gia xây dựng bài.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom