Tìm hiểu và học Class Module trong Excel

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

syquyen1987

Thành viên hoạt động
Tham gia
8/7/18
Bài viết
193
Được thích
43
Kính gửi các Anh trên diễn đàn

Em chưa từng được tiếp cận Class Module, vì vậy em muốn tìm hiểu và học nó, các anh có tài liệu và các ví dụ liên quan đến nó cho em xin để em nghiên cứu và học nó ạ

Em xin cảm ơn ạ
 
Tài liệu miễn phí thì mình không biết, chứ tốn phí thì mình biết có một bác tên là: Nguyễn Duy Tuân.
Nếu chấp nhận tốn phí thì nhờ bác ấy chia sẽ. Class Module, VB6...... bác ấy đều có tài liệu hết.
 
Upvote 0
À, miễn phí thì mình thấy có link này
 
Upvote 0
Class module rất đơn giản, giống như module, class module có thêm:

1. Các Attribute cài đặt trong khởi tạo một class.

2. Implement: nhúng một class module vào trong class module khác.

3. Các thủ tục phương thức Property Let, Set, Get.

4. Phương thức sự kiện WithEvents, Event lớp, ứng dụng. Hàm trả sự kiện RaiseEvent.

5. Hai hàm khởi tạo và kết thúc Class_ Initialize và Class_Terminate trong lớp.

6. Cách clone các biến số cần dựa vào khai báo kiểu Type.

7. Cách tạo gọi lớp để chạy thực thi với biến đối tượng hoặc collection hoặc dictionary.
 
Upvote 0
Class căn bản là lập trình hướng đối tượng.
Nếu không nắm vững các yếu tố của HĐT thì Class Module của VBA chỉ dùng để luồn lách qua một số trường hợp mà chính code của module thường không làm được (ví dụ, tự tạo events).

Để viết code VBA "xịn", kiến thức và kinh nghiệm về các Objects của bảng tính (sheet, range,...) quan trọng hơn. Kế đó là các Objects của VBA (FileSystemObject,...), các Objects của Windows (ADO, VBSCript/Dictionary,...)
Theo như những câu hỏi gần đây của bạn thì bạn còn cần học và thực tập (tích lũy kinh nghiêm) cái này một thời gian nữa.

Lưu ý là viết code Class Module chạy ào ào không có nghĩa là giỏi về LT HĐT. Cái chính của HĐT là thiết kế chứ không phải code.
 
Upvote 0
Class căn bản là lập trình hướng đối tượng.
Nếu không nắm vững các yếu tố của HĐT thì Class Module của VBA chỉ dùng để luồn lách qua một số trường hợp mà chính code của module thường không làm được (ví dụ, tự tạo events).

Để viết code VBA "xịn", kiến thức và kinh nghiệm về các Objects của bảng tính (sheet, range,...) quan trọng hơn. Kế đó là các Objects của VBA (FileSystemObject,...), các Objects của Windows (ADO, VBSCript/Dictionary,...)
Theo như những câu hỏi gần đây của bạn thì bạn còn cần học và thực tập (tích lũy kinh nghiêm) cái này một thời gian nữa.

Lưu ý là viết code Class Module chạy ào ào không có nghĩa là giỏi về LT HĐT. Cái chính của HĐT là thiết kế chứ không phải code.
Vâng, thật ra công việc của em làm không liên quan bất cứ thứ gì liên quan đến lập trình Excel ạ. Trước đây em có làm Công ty nước ngoài và thấy hay và tìm hiểu vì đam mê thôi ạ, chứ không qua trường lớp dạy chính quy nào ạ. Giờ em đang làm Công ty trong nước, em cũng tìm tòi, học hỏi và đã xây dựng file Quản lý sản xuất ạ. Kiến thức lập trình em chỉ biết lơ mơ mỗi thứ một tí thôi ạ, em mong muốn các anh hướng dẫn và chỉ dạy em nhiều ạ. Em xin cảm ơn ạ.
Hình ảnh dưới đây là về lập trình Menu Ribbon mà em học được ạ.
1693964918930.png
 

File đính kèm

  • 1693964344758.png
    1693964344758.png
    115.5 KB · Đọc: 22
Lần chỉnh sửa cuối:
Upvote 0
Vâng, thật ra công việc của em làm không liên quan bất cứ thứ gì liên quan đến lập trình Excel ạ.
...
Không liên quan thì học chi cho mệt.
Học thiết kế và quản lý bảng tính về sau này đắc dụng hơn. Cần lập trình thì cứ đẩy cho Chat.GPT, mấy thằng lính dưới quyền, hoặc hỏi GPE.

Muốn học lập trình chung chung thì chỉ nên học JavaScript. Muốn học lập trình phân tích dữ liệu thì chỉ nên học Python.
 
Upvote 0
Không liên quan thì học chi cho mệt.
Học thiết kế và quản lý bảng tính về sau này đắc dụng hơn. Cần lập trình thì cứ đẩy cho Chat.GPT, mấy thằng lính dưới quyền, hoặc hỏi GPE.

Muốn học lập trình chung chung thì chỉ nên học JavaScript. Muốn học lập trình phân tích dữ liệu thì chỉ nên học Python.
Thế em mới bảo là một khi đam mê thì không biết mệt là gì đâu ạ
 
Upvote 0
Thế em mới bảo là một khi đam mê thì không biết mệt là gì đâu ạ
Có lẽ bạn chưa biết về tôi khi nói cái câu "không biết mệt".
Niềm "đam mê" của bạn đủ để:
"cầm quyển sách, đọc không sót 1 chữ, ghi lại chú thích những gì mình hiểu và không hiểu, và thử bài tập không sót 1 bài." ?

Tôi vốn chuyên Văn, nhưng kiến thức Toán, Vật lý không thua gì bất cứ bạn nào trên GPE này. Mà cũng chẳng phải do đam mê gì cả, chỉ do hoàn cảnh buộc vậy thôi.
 
Upvote 0
Có lẽ bạn chưa biết về tôi khi nói cái câu "không biết mệt".
Niềm "đam mê" của bạn đủ để:
"cầm quyển sách, đọc không sót 1 chữ, ghi lại chú thích những gì mình hiểu và không hiểu, và thử bài tập không sót 1 bài." ?

Tôi vốn chuyên Văn, nhưng kiến thức Toán, Vật lý không thua gì bất cứ bạn nào trên GPE này. Mà cũng chẳng phải do đam mê gì cả, chỉ do hoàn cảnh buộc vậy thôi.
Em gần đạt được ngưỡng như anh nói đấy ạ
 
Upvote 0
Em gần đạt được ngưỡng như anh nói đấy ạ
"Gần" chưa có phải là được.
Cố đạt đi rồi thì sẽ tự biết học "Class Module" ở đâu và bằng cách nào. Khỏi cần hải lên đây hỏi.

Hồi nào đến giờ, những người tôi biết mà có "đam mê" đều tự biết tìm chỗ học, tự tạo môi trường và phương tiện để học. Chỉ những chỗ nào bí mới lên diễn đàn hỏi. Nhìn câu hỏi của họ biết mức độ "đam mê" và trình độ "đạt" liền.
 
Upvote 0
Thế tôi có đạt không anh?
Đạt cái gì? Dừng có nói mông lông tôi ngứa tay phang vào một vài từ rồi đi côn đảo nhé.

Đùa thôi. Câu trả lời trong trường hợp của bạn là nếu biết Unit Test thì coi như đạt khả năng viết code Class. Tôi biết bạn đã qua trình độ boundary test cho code rồi, nhưng chưa thấy bạn unit test.
 
Lần chỉnh sửa cuối:
Upvote 0
"Gần" chưa có phải là được.
Cố đạt đi rồi thì sẽ tự biết học "Class Module" ở đâu và bằng cách nào. Khỏi cần hải lên đây hỏi.

Hồi nào đến giờ, những người tôi biết mà có "đam mê" đều tự biết tìm chỗ học, tự tạo môi trường và phương tiện để học. Chỉ những chỗ nào bí mới lên diễn đàn hỏi. Nhìn câu hỏi của họ biết mức độ "đam mê" và trình độ "đạt" liền.
Đúng như anh nói, có thời gian là em vào youtube, diễn đàn nước ngoài để tìm và học đây ạ
Bài đã được tự động gộp:

Đúng như anh nói, có thời gian là em vào youtube, diễn đàn nước ngoài để tìm và học đây ạ
Em vẫn bầu víu chỗ em thân thuộc trước ạ, nếu chưa học được hết thì em mới dần dần tìm chỗ "xa" hơn anh ạ
 
Upvote 0
Ý tôi hỏi là đạt cái "ngưỡng đam mê" như ý bài 9 và 10
Đối với tôi, đam mê (passion) chỉ là nhất thời, quyết tâm (determination) mới là có mục đích.
Làm việc với đam mê thì người ta có thể miệt mài, nhưng mục đích chỉ để thỏa cái adrenaline thôi.
Làm việc với quyết tâm, người ta có mục đích cụ thể. Thường thì đạt mục đích mới thôi. Tuy cũng có đôi khi không đạt nổi, vì lỡ đặt mục đích ngoài khả năng.
 
Upvote 0
Đối với tôi, đam mê (passion) chỉ là nhất thời, quyết tâm (determination) mới là có mục đích.
Làm việc với đam mê thì người ta có thể miệt mài, nhưng mục đích chỉ để thỏa cái adrenaline thôi.
Làm việc với quyết tâm, người ta có mục đích cụ thể. Thường thì đạt mục đích mới thôi. Tuy cũng có đôi khi không đạt nổi, vì lỡ đặt mục đích ngoài khả năng.
Với tôi thì đam mê và quyết tâm có thừa, nhưng là hồi còn đi làm kia. Lúc ấy còn nhiều cái đích để vươn đến và có động lực để nuôi dưỡng đam mê. Chừ thì thứ gì cũng bay hơi nhiều lắm rồi, hà hà.
 
Upvote 0
Với tôi thì đam mê và quyết tâm có thừa, nhưng là hồi còn đi làm kia. Lúc ấy còn nhiều cái đích để vươn đến và có động lực để nuôi dưỡng đam mê. Chừ thì thứ gì cũng bay hơi nhiều lắm rồi, hà hà.
Đam mê học code VBA:
Đi vòng vòng tìm code. Thấy cái nào "hay" thì lôi về nghiên cứu. (làm cách nào biết nó hay thì hên xui)
Sau một thời gian nghiên cứu thì tự nhiên "giỏi"
Cũng như đi chim gái, đẹp trai không bằng chai lỳ. Cứ kiên nhẫn sẽ có ngày thành công.

Quyết tâm học code VBA:
Đặt mục tiêu (ví dụ học tới bậc trung, bậc cao?) tiếng nghề gọi là scoping (vạch rõ tầm vực)
Tự đặt số thời gian mỗi ngày và tài nguyên (ví dụ mua sách) có thể bỏ ra được. Tiếng nghề gọi là resourcing (kiểm lại tài nguyên cần thiết)
Tìm kiến thức sơ khởi (lập trình VBA cho Excel gồm có những thứ gì và kết quả là gì?) tiếng nghề gọi là initial analysis (phân tích dồ án)
Đặt kế hoạch thực hiện (phân thành nhiều giai đoạn, mỗi giai đoạn có tài nguyên co thể bỏ ra và mốc thời gian mà phải đạt) tiếng nghề là planning.
Bắt đầu theo kế hoạch. Tiếng nghề gọi là excecuting the plan.
Cứ mỗi mốc thời gian thì kiểm chứng lại xem mốc của mình có thực tế và chỉnh sửa nếu cần. Tiếng nghề gọi là revision.
Cũng như tìm bạn đời. Phải đại khái biết những gì mình muốn. Và sau đó tìm cách thực hiện.

Đam mê là cái mà nhiều người muốn theo. Bởi vì xem so sánh ở trên sẽ thấy nó dễ đạt hơn cách thứ hai nhiều. Và với tuổi trẻ thì hai tiếng "đam mê" nghe nó rất thơ mộng. Rất tiếc vì nó không có định rõ mục tiêu từ đầu cho nên cuối cùng cái đạt được chưa hẳn đã là cái cần thiết.
Nói cho cùng thì nhiều người ở đây chưa chắc đã biết thế nào là một đồ án và quy trình kế hoạch đồ án. Vì vậy cách học theo quyết tâm hơi khó.
 
Upvote 0
Web KT

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

Back
Top Bottom