Lý do VBA và lý do VB.NET

tuhocvba

Administrator
Thành viên BQT
Thời gian gần đây, các bạn thấy trên diễn đàn xuất hiện khá nhiều các bài viết về VB.NET. Sau đây tôi xin giải thích lý do để các bạn hiểu và đồng hành cùng chúng tôi.

Lý do VBA và lý do VB.NET
Trong công việc, chúng tôi không thể tạo ra exe sử dụng trong công ty. VBA là môi trường có sẵn trong office, chúng tôi không phải xin phép ai. Vậy là cứ code theo ý muốn của mình là được. Đây là lý do chúng tôi đến với VBA. Trong thời gian qua, diễn đàn chủ yếu tập trung vào VBA .
Tuy nhiên làm Tool chia sẻ ra cộng đồng, nếu là Tool VBA thì có hạn chế. Nó chưa phải là một chương trình chạy độc lập. Ví dụ, nếu chạy một chương trình VBA thì gần như chúng ta phải ngừng sử dụng Excel hay Word.

Nếu muốn tạo chương trình exe chạy độc lập thì sao?

Ban đầu tôi tiếp cận VB6. Ngôn ngữ này giống VBA gần như hoàn toàn. Có thể build ra exe và chạy độc lập, chỉ cần vậy là đã đáp ứng đủ nhu cầu rồi. Nhưng tôi gặp phải những khó khăn như không thể xây dựng giao diện tiếng việt một cách thân thiện.

Vậy là dù đã tốn công tốn sức đang code dở, tôi bỏ giữa chừng và tìm hiểu VB.NET
Có thể nói ngôn ngữ này cũng giống với VBA. Vì nó có thêm nhiều thuộc tính cũng như đối tượng, vì vậy mọi người cảm thấy choáng ngợp. Ngoài ra bố cục layout cũng khác một chút. Khi đã viết được một chương trình ở mức độ đơn giản, bạn sẽ hiểu toàn bộ quy trình code bắt đầu từ đâu và kết thúc như thế nào, mọi lo lắng bỡ ngỡ ban đầu sẽ tan đi.

So với VBA thì code VB.NET nhàn hơn.
Thứ nhất, có thể gõ trực tiếp tiếng việt trong Code.
Đối với VBA, một số anh em để font Time New Roman trong VBE , gõ trực tiếp tiếng việt, có máy chạy được có máy không. Ít nhất trên máy tính của mình, code như vậy chết rất nhiều. Nhưng chương trình tạo ra từ VB.NET thì khác, tiếng việt gõ trực tiếp trong code, và khi hiển thị vẫn chuẩn.
Thứ hai, giao diện được hỗ trợ quá mạnh so với VBA. Sản phẩm làm ra trông chuyên nghiệp hơn hẳn một sản phẩm làm từ VBA, điều này là hiển nhiên rồi.
Thứ ba, code có thể sẽ ngắn gọn hơn code VBA.

Tại sao lại là VB.NET ?
Nhìn chung bố cục code của VB.NET và VBA là tương đồng. Bạn cũng có Module, Windows Form (UserForm).
Ở VBA bạn add thêm thư viện bằng Reference, ở VB.NET cũng vậy.
Vòng lặp For, Do~Loop,… không phải học lại, giống nhau.
Câu lệnh rẽ nhánh, if, select case, … giống nhau.

Tóm lại, các câu lệnh logic không có gì thay đổi. Đây là lợi thế vô cùng lớn. Bố cục chương trình nhìn chung không nhiều khác biệt.
Các lệnh xử lý chuỗi ký tự như Instr, Mid, Cstr, Replace,… và rất nhiều lệnh khác vẫn dùng được.
Cách khai báo biến, khai báo hàm, thủ tục là tương đồng.

Vì có sự tương đồng rất lớn như vậy, nên chuyển từ VBA sang VB.NET cực kỳ thuận lợi, bạn chỉ gặp khó khăn ở điểm sau (chủ yếu vấn đề tâm lý ) :
-Ngại cài visual studio. Tương đối nặng. Cứ chần chừ mãi không cài thì không bao giờ bắt đầu được. Hãy đi qua điểm khó khăn này.
-Không biết bắt đầu từ đâu để viết chương trình. Với VBA thì dễ rồi, ấn ALT +F11 là ra môi trường viết code.
Visual studio nó hỗ trợ quá nhiều, nên thành ra hơi rối mắt khi lần đầu sử dụng. Hãy đi qua điểm khó khăn này, làm một lần để lần sau khỏi sợ nữa.
-Mảng không thể variant được nữa.
Nói chính xác thì cần phải làm rõ kiểu dữ liệu. Chứ không thể tùy tiện variant như VBA.

Đối với người code C# thì vẫn hiểu được code VB.NET và ngược lại. Chính bản thân tôi tham khảo code C# của NhanSu đã có thể viết lại thành VB.NET, thật ra không khó đâu.

Như vậy, đồng hành cùng chúng tôi, bạn sẽ có hai công cụ. Một là nắm được VBA để hoàn thành tốt công việc ở công ty.
Hai là nắm được VB.NET để có thể tự tạo Tool dưới dạng Exe.
 

Euler

Administrator
Thành viên BQT
Các bài VB.NET trên diễn đàn theo hướng tiếp cận nhìn từ VBA, mặc định người đọc đã có kiến thức VBA. Đây là cách nhanh, các bạn viết một chương trình VB.NET không mất nhiều thời gian.
Có nhiều người sẽ nghĩ, thời buổi nào rồi mà còn học VB.NET. Mình thì không nghĩ vậy.
Chẳng phải các bạn đang học VBA đó hay sao?

Không cần biết mèo trắng hay mèo đen, miễn là bắt được chuột là được. Không cần biết VB.NET hay C# hay Delphi, miễn là tạo ra Exe phục vục công việc của các bạn là được. Hơn nữa chi phí thời gian bỏ ra tìm hiểu là thấp nhất (đi từ hướng VBA).
 

PTHhn

Yêu THVBA như điếu đổ
Mấy giờ rồi còn VBA với VB.NET?

Việc sử dụng ngôn ngữ nào là do các bạn cân nhắc, dựa trên lợi ích các bạn thu được và chi phí thời gian sẽ bỏ ra.
Chuyên nghiệp, nhìn ngầu-là những nhận xét rất cảm tính.

Chẳng hạn dẫu biết C++ là tốt, nhưng bạn thuần thục VB hơn thì bạn nên code bằng VB. Chương trình của bạn sẽ hoàn thành trong thời gian sớm nhất.
Người ta nói C++ sẽ cho tốc độ tốt. Lúc này nên hỏi chương trình bạn làm sẽ thực hiện công việc gì, có cần tốc độ không? Thật vậy, không phải chương trình nào cũng cần tốc độ. Do đó, dù C++ tốt nhưng không phải lúc nào cũng cần.

Thời gian phát triển một dự án VB thường ngắn hơn rất nhiều một dự án viết bằng C++. Chẳng hạn, nếu code bằng VB tôi sẽ mất 1 tuần. Nếu code bằng C++ có khi tôi mất 1 tháng.
Code C++ cho tốc độ nhanh hơn vài chục mili giây. Hay thậm chí là 1-2 giây.
Nếu chỉ vì để nhanh hơn như vậy mà mất tới 1 tháng, thì tôi chấp nhận code bằng VB.

Thực tế nhiều người code giao diện thì dùng VB. Các hàm quan trọng thì code bằng C++ xuất ra DLL. Tất cả đều có tính toán mà trong đó chi phí thời gian không thể không lưu tâm. Nếu code toàn bộ bằng C++ thì chi phí thời gian sẽ rất lớn.

Nhiều người nói rằng, ồ bạn không biết sao, để viết một hệ điều hành thì nên sử dụng C++. C++ mạnh lắm đó. Mấy giờ rồi còn VBA với VB.

Tôi không nói rằng VB tốt hơn C ++, nhưng tôi cũng không nói rằng C ++ tốt hơn VB. Kiểu so sánh đó thật nực cười đơn giản vì nó phụ thuộc vào những gì bạn đang làm. Nó chẳng khác nào đặt ra câu hỏi có phải một cái búa tốt hơn một cái cưa?

Để so sánh trung thực các ngôn ngữ, bạn cần cân nhắc xem bạn cần làm gì và ngôn ngữ nào bạn sẽ làm việc hiệu quả nhất. Vì vậy, để quay lại lập luận của bạn về hệ điều hành, tôi đồng ý rằng tôi sẽ không chọn VB nếu tôi cần tạo một hệ điều hành mới. Nhưng thêm một điều nữa, tôi chưa bao giờ được trả tiền để tạo một hệ điều hành mới và tôi rất nghi ngờ sẽ có ai đó thuê tôi làm điều đó. Khách hàng của tôi, những người trả tiền cho tôi, thường không quan tâm đến các công cụ tôi sử dụng nhưng họ sẽ nhận được lợi tức đầu tư nhanh như thế nào và vì tôi có thể thành thật nói rằng tôi làm việc hiệu quả với VB hơn là với C ++, VB sẽ lựa chọn ngôn ngữ của tôi. Nhưng tôi không sử dụng VB một mình, tôi sử dụng rất nhiều công cụ và công nghệ khác nhau để hoàn thành công việc.
 
Top