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).
 
Top