Để lập trình VBA tốt (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Mỗi người có một cách học tuy nhiên they said "Mọi con đường đều dẫn đến thành Rome"...điều quan trọng là dùng nó để hỗ trợ tốt cho mục đích công việc là được.
Em thì cứ cái j đơn giản, dễ hiểu, ứng dụng được & ko gây tác dụng phụ thì xài dù là VB hay VBA.

Thui em xin ra ngoài đọc code của các bác trên diễn đàn để thêm tý kiến thức, chứ ở đây bị "chọc" & lose time chẳng bít bao giờ mới đi đến Rome..

...Tranh luận xong tất cả lại về...(đọc code)..oh oh oh oh oh
:plane:
 
Thấy các bác tranh luận muốn lập trình tốt VBA thì phải hiểu được VB, cái đó tôi nghĩ chỉ là một phần thôi. Nhưng nếu lý luận theo lôgic trên muốn hiểu sâu VB trước tiên phải có chút vốn lận lưng căn bản về lập trình như phải học và hiểu về lập trình Pascal chẳng hạn (đó cũng trình tự đào tạo thành kỹ sư tin học ở các trường đại học).....--=0!$@!!:-=
 
Dear all,--------Em thì cho rằng VBA và VB không có những cách biệt. Chúng đều là ngôn ngữ lập trình, mà muốn giao tiếp bằng ngôn ngữ nào thì phải học ngôn ngữ đó. Các lớp và cấu trúc lập trình vẫn là nền tảng căn bản. Cái thuận lợi của người biết lập trình VB khi lập trình VBA là VB họ có thể tiếp cận các đối tượng một cách có kinh nghiệm hơn. Ngược lại, những người hiểu sâu về VBA có lợi thế trong việc lựa chọn các đối tượng cần sử dụng một cách thích hợp nhất.Tuy nhiên chủ đề của chúng ta không phải bàn đến những kinh nghiệm trong việc sử dụng VB hay VBA, mà vấn đề là làm sao "Để lập trình VBA tốt"."Tốt" thường được đánh giá ở những yếu tố tích cực. Ở đây, yếu tố đó có thể là khả năng tư duy để có một cách giải ngắn nhất, là kỹ năng viết lệnh trong sáng, có tính sử dụng lại cao, là hiệu quả của chương trình ứng dụng cho công việc...Nếu câu hỏi này được đặt ra bởi người "mới bắt đầu" thì một lời khuyên bổ ích là các bạn phải thận trọng và... từ từ! Đừng quá vồ vập vào nó bởi nó sẽ các bạn mất khá nhiều thời gian. Hay học các kỹ thuật điều khiển và kiểm tra lỗi chương trình bằng các công cụ trong menu Debug.Ngoài ra các bạn không quên ấn F1 vào đối tượng cần nghiên cứu hoặc www.giaiphapexcel.com mỗi lúc khó khăn!
 
Khác nhau căn bản đấy. Ví dụ: 1 cái có thể dịch thành machine code (Tức là có compiler hẳn hoi), còn cái kia thì không (chỉ là interpreter). 1 cái có thể tạo ActiveX, cái kia thì không, và còn tỷ thứ nữa để chứng minh 2 thứ là khác biệt.... Chỉ giống nhau ở những cái Syntax căn bản thôi.
 
VB và VBA khác nhau đấy

hai2hai đã viết:
Khác nhau căn bản đấy. Ví dụ: 1 cái có thể dịch thành machine code (Tức là có compiler hẳn hoi), còn cái kia thì không (chỉ là interpreter). 1 cái có thể tạo ActiveX, cái kia thì không, và còn tỷ thứ nữa để chứng minh 2 thứ là khác biệt.... Chỉ giống nhau ở những cái Syntax căn bản thôi.

Đồng ý hoàn toàn với ý kiến trên . VBA chỉ là một phần của VB thôi và VBA với VB chỉ giống nhau ở phần căn bản . Các bạn biết rằng một chương trình viết bằng VB thi có thể biên dịch đươc (tức có compiler) còn với VBA thì không
 
Chào các Bạn! Theo tôi nghĩ: VB hay VBA các đó không quan trọng?! Trước hết để làm một công việc gì đó ta phải xây dụng cho mình được mục đích và hướng đối tượng, sau đó đưa ra các giải pháp thích hợp cho công việc và khi đó muốn sử dụng bất kỳ ngôn ngữ nào cũng được, miễn là gọn nhẹ và hiệu quả. Ngay bản thân các chương trình ứng dụng của bộ office đã link với nhau thông qua SQL và VBA khi ta nhúng dữ liệu qua lại.
Xin mạn phép góp ý với các Bạn, nếu không đúng xin các Bạn góp ý.
Cảm ơn.
 
Tôi là một cư dân mới của lang VBA (chưa biết chi hết) Nhưng tôi nghỉ đã là lập trình thì bất kì ngôn ngữ nào cũng như nhau một điểm là phải biết cách nắm vẫn các thuật toán và nhũng gì mình đã có. khi đó việt phát triển vốn kiến thức sẽ trở nên khá dẽ dàng.
 
Đúng rồi! THUẬT TOÁN... Cái đó có thể gọi là "ý tưởng sáng tạo" đấy! Vì cho dù là VB, VBA hay cái quái gì đi chăng nữa thì nó cũng chỉ là 1 công cụ hổ trợ ko hơn ko kém... ko có hồn, vô tri vô giác... Trí thông minh của con người hoàn toàn ko phụ thuộc vào những công cụ này (có điều là người có công cụ mạnh sẽ lảm việc dễ dàng hơn)... Bản thân tôi đã từng điên đầu vì những chương trình suy nghĩ hoài ko ra (tôi làm bên điện tự đông hóa chứ ko chuyên Excel), ấy thế mà cuối cùng lại thành công chỉ nhờ ý tưởng của bạn tôi (bạn tôi lại chẵng biết tí gì về lập trình cả)... Vậy thì sao nè? Mấy bác miền Tây chẳng học qua 1 lớp đào tạo nào về Kiến trúc và xây dưng vẫn dời nhà rầm rầm...
Vì thế mà ngay cả trên GPE này cũng vậy... tôi nghĩ việc bạn giãi thích ý tưởng bạn đã làm nó như thế nào còn quý hơn trăm ngàn cuốn sách... Đó mới là hiệu quả học tập đấy! Các bạn mới làm quen với Excel hãy yên tâm đi, dù bạn xây dựng code bằng cách nào đi nữa thì Ý TƯỞNG CỦA BẠN mới là cái quan trọng nhất...
ANH TUẤN
 
anhtuan1066 đã viết:
Đúng rồi! THUẬT TOÁN... Cái đó có thể gọi là "ý tưởng sáng tạo" đấy! Vì cho dù là VB, VBA hay cái quái gì đi chăng nữa thì nó cũng chỉ là 1 công cụ hổ trợ ko hơn ko kém... ko có hồn, vô tri vô giác... Trí thông minh của con người hoàn toàn ko phụ thuộc vào những công cụ này (có điều là người có công cụ mạnh sẽ lảm việc dễ dàng hơn)... Bản thân tôi đã từng điên đầu vì những chương trình suy nghĩ hoài ko ra (tôi làm bên điện tự đông hóa chứ ko chuyên Excel), ấy thế mà cuối cùng lại thành công chỉ nhờ ý tưởng của bạn tôi (bạn tôi lại chẵng biết tí gì về lập trình cả)... Vậy thì sao nè? Mấy bác miền Tây chẳng học qua 1 lớp đào tạo nào về Kiến trúc và xây dưng vẫn dời nhà rầm rầm...
Vì thế mà ngay cả trên GPE này cũng vậy... tôi nghĩ việc bạn giãi thích ý tưởng bạn đã làm nó như thế nào còn quý hơn trăm ngàn cuốn sách... Đó mới là hiệu quả học tập đấy! Các bạn mới làm quen với Excel hãy yên tâm đi, dù bạn xây dựng code bằng cách nào đi nữa thì Ý TƯỞNG CỦA BẠN mới là cái quan trọng nhất...
ANH TUẤN

OK. Cảm ơn bạn vì ý kiến này rất nhiều.
Ý tưởng là quan trọng nhất.
Và cũng rất cần phải có phương tiện phù hợp để thực hiện ý tưởng nữa.
 
Lần chỉnh sửa cuối:
Các bác chỉ nói về cách học như thế nào thôi chứ không thấy ai nhắc tới học ở đâu cả, mà đối với newmember mới làm quen với VB thì cách tốt nhất để học là tập tành từ các đoạn mã của các ví dụ đơn giản và một cuốn sách hướng dẫn cú pháp các hàm, thư viện hàm có sẵm trong VB. Nếu các bác nào có ebook nói về các vấn đề này thì xi up lên đây cho mọi người làm quen nha.
Thanks.
 
alpha1st đã viết:
Các bác chỉ nói về cách học như thế nào thôi chứ không thấy ai nhắc tới học ở đâu cả, mà đối với newmember mới làm quen với VB thì cách tốt nhất để học là tập tành từ các đoạn mã của các ví dụ đơn giản và một cuốn sách hướng dẫn cú pháp các hàm, thư viện hàm có sẵm trong VB. Nếu các bác nào có ebook nói về các vấn đề này thì xi up lên đây cho mọi người làm quen nha.
Thanks.

Nếu học VB6, bạn mua bộ gồm 3 đĩa cài MSDN của Visual Studio 98 cài vào máy, có các ví dụ, help đầy đủ.
Vào VB6 và nhấn F1 nhé.
 
Sách về VB trên GPE đã có nhiều rồi. Tôi xin bổ sung thêm để các bạn có thêm sự lựa chọn.
Tôi học VBA trong một tình huống khác. Ban đầu chỉ biết sơ sài về VB, công việc cần tôi phải xử lý số liệu trên Excel rất nhiều và khó khăn (những người trước tôi phải làm công việc đó trong 2 ngày mà rất dễ mắc phải sai sót). Thế là tôi cứ Tools - Macro - Record Macro; sau đó Alt + F11 để đọc, nghiên cứu và sửa code. Lúc đó, GPE chưa ra đời, tôi có tìm ở các nhà sách tại TpHCM nhưng không thấy cuốn sách nào cho ra hồn. Từ ngày biết đến GPE, trình độ VBA của tôi tiến bộ rất nhiều. Cảm ơn GPE rất nhiều.
Sao upload file bị lỗi hoài vậy? các bạn theo đường dẫn này để tải giáo trình của trường đại học Cần thơ nhé:
http://ebook.edu.net.vn/?page=1.3&view=1287
http://ebook.edu.net.vn/?page=1.3&view=1289
 
vtt đã viết:
Sách về VB trên GPE đã có nhiều rồi. Tôi xin bổ sung thêm để các bạn có thêm sự lựa chọn.
Tôi học VBA trong một tình huống khác. Ban đầu chỉ biết sơ sài về VB, công việc cần tôi phải xử lý số liệu trên Excel rất nhiều và khó khăn (những người trước tôi phải làm công việc đó trong 2 ngày mà rất dễ mắc phải sai sót). Thế là tôi cứ Tools - Macro - Record Macro; sau đó Alt + F11 để đọc, nghiên cứu và sửa code. Lúc đó, GPE chưa ra đời, tôi có tìm ở các nhà sách tại TpHCM nhưng không thấy cuốn sách nào cho ra hồn. Từ ngày biết đến GPE, trình độ VBA của tôi tiến bộ rất nhiều. Cảm ơn GPE rất nhiều.
Sao upload file bị lỗi hoài vậy? các bạn theo đường dẫn này để tải giáo trình của trường đại học Cần thơ nhé:
http://ebook.edu.net.vn/?page=1.3&view=1287

Đây là 2 link trực tiếp :

Visual Basic 6.0

Visual Basic 6.0 - Bài tập


Thân!
 
Muốn giỏi về bất cứ ngôn ngữ lập trình nào cũng cần giỏi về thuật toán đúng không các bác? Nhưng em vẫn thấy mông lung ở phần điều khiển các chuyển động của các shape trong powerpoint. Nhiều khi đòi hỏi mình phải giỏi về toán nữa cơ. Bác nào có ví dụ về mảng này làm ơn chia sẻ giúp em qua địa chỉ: xuanktk2@gmail.com nha. Cảm ơn cả nhà nhiều lắm!
 
Theo tôi, để lập trình VBA tốt, trước hết phải thông thạo về VB đã. Khi đó trình độ về VBA sẽ sâu hơn
Mời các bạn cho ý kiến

Theo tôi, không cần phải thông thạo về VB vì mỗi ngôn ngữ có mục đích sử dụng riêng.
Chỉ cần thông thạo những điều cơ bản là đủ nội công để khám phá chiêu thức mới!

Điều thứ 2, tôi thấy một số bạn học VBA theo cách record và xem nó có gì...
Thật sự cái này cũng có ích, tôi đôi khi cũng làm. Tuy nhiên, chỉ là một số việc đơn giản và nếu có phức tạp hơn thì bạn có thể hiểu đoạn code nó không nếu không học về các cú pháp hay đại khái là ngôn ngữ riêng của VBA? Ngoài ra không phải tất cả mọi thứ muốn sẽ record được!

Cuối cùng, nên xác định rõ bạn học VBA để làm gì ? Nếu mà phục vụ cho việc sử dụng excel chuyên nghiệp thì tôi thấy không cần thiết.
Bởi lẽ, nếu có cần thì cũng chỉ cần 1-2 hàm hay gì đó và sử dụng suốt cho công việc của bạn. Hơn nữa có các chuyên gia GPE rồi nè, nên đừng lo lắng phải đầu tư thêm tràn lan hén :)
Thân chào!
 
Cuối cùng, nên xác định rõ bạn học VBA để làm gì ? Nếu mà phục vụ cho việc sử dụng excel chuyên nghiệp thì tôi thấy không cần thiết.
Bởi lẽ, nếu có cần thì cũng chỉ cần 1-2 hàm hay gì đó và sử dụng suốt cho công việc của bạn. Hơn nữa có các chuyên gia GPE rồi nè, nên đừng lo lắng phải đầu tư thêm tràn lan hén :)
Thân chào!

Không đồng ý, VBA có thể giải quyết được nhiều bài toán mà thuần tuý Excel khó hoặc không làm được. Ví dụ đổi tiền từ số sang chữ, nội suy, liên kết với môi trường bên ngoài,.... Mà bạn phải đọc nội dung chủ đề.
 
Theo tôi, không cần phải thông thạo về VB vì mỗi ngôn ngữ có mục đích sử dụng riêng.
Chỉ cần thông thạo những điều cơ bản là đủ nội công để khám phá chiêu thức mới!
Điều thứ 2, tôi thấy một số bạn học VBA theo cách record và xem nó có gì...
Thật sự cái này cũng có ích, tôi đôi khi cũng làm. Tuy nhiên, chỉ là một số việc đơn giản và nếu có phức tạp hơn thì bạn có thể hiểu đoạn code nó không nếu không học về các cú pháp hay đại khái là ngôn ngữ riêng của VBA? Ngoài ra không phải tất cả mọi thứ muốn sẽ record được!
Cuối cùng, nên xác định rõ bạn học VBA để làm gì ? Nếu mà phục vụ cho việc sử dụng excel chuyên nghiệp thì tôi thấy không cần thiết.
Bởi lẽ, nếu có cần thì cũng chỉ cần 1-2 hàm hay gì đó và sử dụng suốt cho công việc của bạn. Hơn nữa có các chuyên gia GPE rồi nè, nên đừng lo lắng phải đầu tư thêm tràn lan hén :)
Thân chào!
Chào các bạn,
Mỗi ngôn ngữ lập trình có có mục đích sử dụng riêng của nó. Tùy mục đích sử dụng, người dùng sẽ chọn một ngôn ngữ lập trình để đạt mục đích của mình. Nhưng nếu viết chương trình hỗ trợ cho Excel nói riêng và các phần mềm của bộ Microsoft Office thì chắc chắn VBA phải là lựa chọn hàng đầu.
Những người mới học Excel làm được một số bài tập, vận dụng được vào công việc của mình rất dễ cảm thấy Excel không có gì là khó (vì thường chỉ dùng cho các công việc đơn giản) có tư tưởng chủ quan, học thế là đủ. Bản thân tôi cũng thế, biết Excel từ 1994, các yêu cầu của cơ quan đưa ra gần như vận dụng công thức đều giải quyết được (chủ yếu tính lương, cộng điểm, ...) nên cứ nghĩ là mình đã thạo Excel. Nhưng thực tế, có nhiều vấn đề rất đơn giản mà phải nhờ diễn đàn tôi mới biết.
Một bước ngoặc trong suy nghĩ của tôi là các hóa đơn tiền điện có dòng đọc số tiếng Việt, Excel có làm được không ? Tốn rất nhiều công sức nhưng không thành công. Tình cờ có được hàm đọc số tiếng Việt của tác giả Ông Văn Thông nhưng không biết cách nào đưa vào bảng tính vì có biết gì về VBA đâu. Lục tung các menu của Excel và cuối cùng cũng làm được và bắt đầu tiếp cận VBA. Điều tôi tâm đắc nhất khi biết vận dụng VBA vào bảng tính là nó làm đơn giản hóa bài toán và xử lý vấn đề có tính chuyên nghiệp hơn, thay vì phải viết hàng loại công thức, tạo thêm nhiều cột phụ thì chỉ cần viết code xử lý hàng loạt thao tác là xong.

Bước đầu cũng phải ghi record, rồi từ đó mới biết cú pháp như thế nào, nhưng quan trọng nhất là làm sao từ những dòng lệnh cứng ngắt đó, mình chỉnh sửa thế nào để nó phục vụ được cho ý đồ của mình. Cách này không phải duy nhất để học VBA, nhưng là con đường nhanh nhất để tiếp cận nó.
Các bạn trẻ bây giờ may mắn hơn thế hệ tôi nhiều, phương tiện đầy đủ, được học bài bản. Gặp khó thì có các diễn đàn giúp đỡ. Còn thế hệ tôi lúc tiếp cận VBA phải tự tìm hiểu qua các ví dụ trong Help (nhưng vốn tiếng Anh quá yếu), không có tài liệu, không có Internet. Nói ra sợ các bạn cười, tôi đã viết đọc số tiếng Việt, chuyển mã, sắp xếp tiếng Việt từ 1995 nhưng vì hạn chế kiến thức VBA, hơn 10 năm (2006) tôi mới dám tự tin đưa thành quả của cho công đồng sử dụng (nhưng vẫn chưa hoàn chỉnh).
Excel không phải là phần mềm quản lý cơ sở dữ liệu chuyên nghiệp, nhưng công tác văn phòng không thể thiếu Excel vì dễ học, dễ sử dụng. Nhưng biết VBA sẽ làm cho bảng tính của bạn trở nên chuyên nghiệp hơn, dễ sử dụng hơn. Hàm Excel rất nhiều nhưng không đủ cho tất cả các lĩnh vực. Ví dụ hàm chuyển số nhị phân sang thập phân BIN2DEC chỉ chuyển sang số thập phân tối đa là 511, muốn số lớn hơn thế phải dùng VBA hoặc phải dùng hàng loạt cột phụ mới giải quyết quyết được. Cho nên theo tôi, muốn sử dụng Excel chuyên nghiệp phải biết VBA.
Trên GPE, bạn có thể tham khảo các hàm, các thủ tục trên bài viết để vận dụng cho mục đích của mình. Nhưng bản thân bạn chưa biết VBA làm sao biết nó thành của bạn được ? Và không phải lúc nào trên GPE cũng có sẳn cho bạn, đâu phải bạn yêu cầu gì thì GPE phải giải quyết cho bạn. Trước tiên bạn phải tự lực. Bạn phải có cái nền VBA thì người khác mới có thể chỉ cách cho bạn xây tiếp công trình theo ý bạn.
Đến bây giờ tôi cũng như các bạn tham gia GPE, đừng nôn nóng khi học VBA. Bản thân tôi cũng chỉ hiểu một phần các bài viết trên GPE vì kiến thức mình chưa tới, nhưng một thời gian sau có thể mình sẽ hiểu.
Đôi lời cùng các bạn.
 
Theo mình, VBA hay VB đều là tạo ra các chương trình. Mà chương trình = cơ sở dữ liệu + thuật toán. Với VB thì ngoài lập trình bạn cần tạo một CSDL nào đó, còn với VBA trong excel hay access thì bản thân excel hay access là cơ sở dữ liệu rồi. Do vậy làm quen với Excel cơ bản, rồi mới học sang VBA. Bản thân mình chưa đọc một quyển sách nào về VB nhưng vẫn có thể làm tốt với VBA ( tốt theo nghĩa thíc gì là có thể làm được)
 
Web KT

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

Back
Top Bottom