Nếu bạn đã từng sử dụng Excel lâu năm, thì chắc bạn đã nghe đến VBA (Visual Basic for Applications).
Vậy, chính xác thì VBA là gì?
VBA là gì?
Hiểu đơn giản: VBA là ngôn ngữ lập trình do Microsoft tạo ra để giúp bạn ghi Macro trong Excel.
"MACRO là một công cụ cho phép bạn tự động hóa các tác vụ và thêm chức năng vào biểu mẫu, báo cáo và điều khiển - Microsoft"
Khi bạn chạy một macro, nó mã hóa đoạn mã để ứng dụng Excel đọc và thực hiện hành động mà bạn mong muốn.
Điều này giúp bạn có thể lập trình tự động hóa trong ứng dụng Excel.
Sau đây là giải thích một loạt các câu hỏi thường gặp và giải thích có thể giúp người mới cho đến chuyên gia có kinh nghiệm hiểu rõ hơn về VBA là gì, VBA dùng để làm gì...
VBA được sử dụng cho Excel là gì?
VBA được sử dụng để viết các macro, tự động hóa các tác vụ từ đơn giản và phức tạp trong Excel.
Vì người dùng Excel thường sẽ lặp đi lặp lại cùng một chuỗi các nhiệm vụ.
Đôi khi đây là các tác vụ nhỏ như sao chép dữ liệu vào các trang tính khác nhau và đôi khi các tác vụ phức tạp hơn như tải dữ liệu lên một trang web.
Với VBA, các macro có thể được lập trình để tự động hóa các tác vụ như thế này, biến một loạt các thao tác thủ công thành một nút bấm duy nhất.
Tuy nhiên, nếu khối lượng công việc của bạn lớn, phức tạp hơn, bạn muốn nhiều hơn thì cần khám phá sâu hơn.
Bạn muốn học VBA Offline? Hãy đăng ký tư vấn ngay bên dưới đây!
Hoặc xem chi tiết khóa học tại đây:
> KHÓA HỌC VBA (cấp tốc) dành cho dân văn phòng
> KHÓA HỌC VBA NÂNG CAO nếu bạn đã có một chút kiến thức về VBA
Làm thế nào để bắt đầu sử dụng VBA trong Excel?
Cách dễ nhất để bắt đầu với macro là ghi lại chúng bằng Trình ghi Macro (Macro Recorder) được tích hợp trong Excel.
Trình ghi macro tạo mã VBA mà bạn có thể đọc và chỉnh sửa, cũng như cung cấp cho bạn một bước đệm để tìm hiểu cách lập trình macro của riêng bạn.
Để biết thêm thông tin, hãy xem bài viết Làm thế nào để ghi Macro trong Excel.
Làm thế nào để truy cập vào Code VBA?
Bạn có thể truy cập vào code VBA bằng cách sử dụng trình soạn thảo VBA (VBA Editor)
VBA Editor có thể được mở bất cứ lúc nào bằng cách nhấn phím tắt ALT + F11
.
Từ đây, bạn có thể truy cập code cho tất cả các sổ làm việc đang mở.
Cách mở trình soạn thảo VBA (VBA Editor) trong Excel
Bạn có thể bấm đúp vào bất kỳ sổ làm việc (WorkBook), trang tính (Sheet) hoặc đối tượng module nào trong cửa sổ Project để hiển thị code VBA có trong nó.
Các macro được ghi sẽ luôn xuất hiện trong các module, đó là nơi bạn thường sẽ viết các macro do bạn tự định nghĩa.
Để biết thêm thông tin về chỉnh sửa macro, hãy xem bài viết Cách chỉnh sửa VBA Macros trong Excel.
VBA có thể làm gì?
VBA có thể giúp tự động hóa mọi thứ trong Excel
Nếu có một thứ gì đó bạn có thể làm trong Excel, bạn có thể viết mã VBA để làm điều tương tự.
Nếu bạn học các lệnh (sử dụng trình ghi macro hoặc các tài nguyên khác), bạn có thể kết hợp nhiều hành động lại với nhau trong một macro duy nhất.
Hãy thử tưởng tượng mọi công tác tính lương, thưởng, phụ cấp, bảo hiểm, xuất biểu đồ báo cáo, phân tích chỉ bằng cách bấm một nút duy nhất.
Việc của bạn còn lại chỉ là nhập dữ liệu vào bảng mà thôi.
VBA có thể giúp bạn tự định nghĩa các hàm trong Excel
Bạn có thể sử dụng VBA để viết các hàm do người dùng định nghĩa để sử dụng trong các công thức bảng tính.
Ví dụ như bạn muốn:
-
Tính lương trung bình 12 tháng
-
Kết quả lấy 2 số sau dấu phẩy
-
Phân tách bằng dấu phảy
,
-
Thêm ký hiệu
đ
ở cuối
> Bạn hoàn toàn có thể định nghĩa 1 lệnh mới để làm 4 công việc này.
Mặc dù Excel đã đóng gói rất nhiều chức năng, sẵn có.
Nhưng nếu bạn thấy mình muốn một chức năng cụ thể hơn đối với công việc của bạn thì bạn hoàn toàn có thể làm với VBA.
VBA có thể giúp bạn hành động khác nhau dựa vào dữ liệu khác nhau
Bạn có thể sử dụng VBA để thêm logic (câu lệnh If) và vòng lặp (hành động lặp lại) vào macro của bạn.
Điều này có nghĩa là một macro của bạn có thể dựa vào dự liệu để ra quyết định là làm thế này hay làm thế kia.
Có nghĩa là bạn viết VBA để tạo ra Macro giống như một chương trình phần mềm.
VBA có thể giúp bạn tạo giao diện trực quan
VBA cho phép bạn xây dựng giao diện người dùng trực quan, giúp người dùng dễ dàng tương tác với các macro của bạn hơn.
Các giao diện này có thể là các nút bấm đơn giản trên bảng tính hoặc một form phức tạp với các bảng điều khiển phong phú như là phần mềm vậy.
Ví dụ: Phần mềm kế toán đầy đủ chức năng hoàn toàn có thể viết bằng VBA (giống như phần mềm lập trình thông thường)
VBA có thể giúp bạn vượt qua nhiều giới hạn
VBA có thể giúp bạn bạn khai thác hầu hết mọi tài nguyên trên máy tính cục bộ hoặc trên internet bằng cách sử dụng các thư viện DLL bên ngoài.
Bạn có thể tự động hóa Excel nhiều hơn, như:
-
Truy cập các dịch vụ web và cơ sở dữ liệu trên máy chủ
-
Tương tác với các ứng dụng Microsoft Office khác
VB và VBA có giống nhau không?
Ngôn ngữ VBA giống hệt với Visual Basic 6.0. (Xem thêm về hướng dẫn Visual Basic chính chủ tại đây: https://docs.microsoft.com/en-us/dotnet/visual-basic/)
Nếu như bạn có kinh nghiệm lập trình VB6, bạn hoàn toàn có thể viết VBA.
VBA Editor trong Excel là phiên bản rút gọn của trình soạn thảo VB6, với các thành phần và khả năng sửa lỗi tương tự như các cửa sổ "Project" và "Properties".
Form Editor cũng rất giống nhau, mặc dù nó có một số hạn chế (như không có khả năng tạo mảng điều khiển).
Ít giống với VBA nhất là Visual Basic .NET. (Xem thêm về VB.NET trên Wiki)
Mặc dù các ngôn ngữ này có nhiều từ khóa và cú pháp giống nhau, nhưng code giữa các ngôn ngữ này ít tương tác hơn.
Bạn không cần phải viết lại nhiều nếu để chuyển một chức năng nào đó từ VB6 sang VBA.
Nhưng không thể làm điều tương tự với VB.NET.
Sự khác biệt giữa Macro và VBA là gì?
VBA chỉ là ngôn ngữ để viết các Macro.
Nếu Macro là một cuốn sách, thì VBA là từ ngữ, cú pháp trong đó.
Sự khác biệt giữa Macro và Script là gì?
Script sử dụng một tập hợp con của ngôn ngữ Visual Basic và được sử dụng cho các mục đích khác nhau.
Macro được lưu trữ bên trong các tệp Excel WorkBook và chỉ có thể chạy từ bên trong Excel.
Chúng thường được sử dụng để tự động hóa các chức năng Excel khác nhau và thêm chức năng bổ sung vào sổ làm việc.
Các Script thì được lưu trữ trong các tệp văn bản bằng phần mở rộng .VBS
và có thể được chạy từ bên trong Windows hoặc được thực hiện bởi các chương trình khác.
Sysadmins sẽ sử dụng các tập lệnh để tự động hóa một số tác vụ quản trị nhất định trên máy tính hoặc mạng.
Học VBA có khó không? Ai nên học VBA?
Thông thường thì VBA có 2 cấp độ:
-
Cấp độ #1: Là khả năng ghi Macro bằng trình ghi Macro. Và vận dụng một số chức năng Excel nâng cao
-
Cấp độ #2: Là khả năng lập trình, chỉnh sửa code bên trong VBA Editor.
Cấp độ đầu tiên hầu như ai cũng có thể tự học thông qua các video, các hướng dẫn trực tuyến.
Tuy nhiên, ở cấp độ thứ 2 sẽ khó hơn và cần nỗ lực hơn. Lúc này có thể bạn sẽ cần phải tìm một ai đó am hiểu về VBA để dạy bạn.
Nỗ lực nhiều hơn cấp độ 1 là chắc chắn, nhưng giá trị bạn đạt được chắc chắn sẽ lớn hơn nhiều lần.
Bất kỳ ai thường xuyên làm việc với Excel đều nên học sử dụng VBA để tối ưu hóa công việc của mình.
Thông thường, những hay sử dụng VBA là:
-
Nhà phân tích dữ liệu
-
Chủ doanh nghiệp
-
Quản lý
-
Kế toán
-
Nhân sự
-
Nhà khoa học
-
Và những người đã được đào tạo về lập trình VBA.
Những người sử dụng VBA thường mong muốn có thể tối ưu hóa công việc trên Excel, hiểu rõ hơn và nhanh hơn về dữ liệu để đưa ra quyết định quan trọng.
Họ có thể muốn tạo báo cáo, kết quả phân tích mang tính tương tác hơn, có giá trị hơn.
Tại sao VBA lại quan trọng?
VBA có sẵn trong tất cả các ứng dụng Microsoft Office, bao gồm Excel.
Và Excel là một trong những chương trình phổ biến nhất trên thế giới và được sử dụng trong nhiều lĩnh vực và nơi làm việc khác nhau, tất cả đều có quy trình làm việc và trường hợp sử dụng riêng.
Nếu không biết, không thể sử dụng VBA Excel, vô số giờ làm việc trên Excel sẽ bị lãng phí mỗi tuần.
Công việc lặp đi lặp lại nhàm chán và không hỗ trợ đưa ra các quyết định nhanh chóng.
Tự động hóa với VBA Excel có thể thực hiện các nhiệm vụ tương tự với tốc độ nhanh như chớp của máy tính.
> Hoặc nếu bạn làm nhân sự và chỉ muốn nâng cao kỹ năng Excel của mình để phục vụ công việc thì KHÓA HỌC C&B đáp ứng đủ nhu cầu của bạn.
Sử dụng VBA cho phép bạn tập trung vào các khía cạnh quan trọng hơn công việc của, làm việc hiệu quả, năng suất, chất lượng hơn.
Và bạn có thể về nhà sớm hơn!
VBA có phải là ngôn ngữ lập trình tốt không?
VBA có các yếu tố lập trình điển hình như:
-
Biến, mảng, hàm, vòng lặp...
-
Nó có một cú pháp rất dễ đọc và có thể khai thác rất nhiều sức mạnh từ Windows và các dịch vụ khác.
Về nhược điểm của VBA, là việc xử lý lỗi khá là khó nếu không được học bài bản.
Trong khi các ngôn ngữ lập trình khác sử dụng các try...catch...final
thì VBA sử dụng các câu lệnh On Error
, để sửa đổi cách các macro hoạt động khi xảy ra lỗi.
Ngoài ra, VBA có thể được sử dụng để tạo các chương trình, trang web hoặc dịch vụ độc lập và nó có thể giao diện với các API lập trình mới hơn như nền tảng .NET.
Tuy nhiên, VBA là ngôn ngữ phổ biến nhất được sử dụng lập trình trên Excel.
Còn đối với các nhiệm vụ khác thì đã có các ngôn ngữ lập trình khác tốt hơn như: Java, PHP, Python.
Microsoft cũng đang dự tính đưa Python lên thay thế cho VBA để lập trình Marcro trong Excel. Nếu thành công thì có lẽ đây là tương lai cực kỳ tươi sáng cho tự động hóa công việc trên Excel.
Bởi vì Python dễ học hơn nhiều so với ngôn ngữ VBA hiện tại.
Note: Python được dùng để dạy trẻ em lớp 6 học lập trình. Và đây cũng là ngôn ngữ lập trình đang phổ biến nhất trên thế giới.
> Tham khảo KHÓA HỌC PYTHON - Học làm chủ ngôn ngữ Python để đến khi Microsoft thực sự hỗ trợ Python trên Excel thì chúng bạn sẽ là người hưởng lợi đầu tiên.
Ngôn ngữ VBA có tính hướng đối tượng không?
VBA có một số hỗ trợ (mặc dù hạn chế) cho một số khái niệm hướng đối tượng:
-
Đóng gói: VBA hỗ trợ ẩn dữ liệu bằng các class
-
Đa hình: Từ khóa Implements cho phép lập trình viên sử dụng các lớp khác làm giao diện
Nhưng theo định nghĩa chặt chẽ thì VBA không hướng đối tượng.
Đáng chú ý là VBA thiếu khái niệm kế thừa, điều này hạn chế nghiêm trọng khả năng mở rộng của các chức năng hiện có.
Tuy nhiên, đối với lập trình, tự động hóa công việc trên Excel, VBA là đủ để chúng ta thoải mái vùng vẫy.
Biết lập trình VBA sẽ giúp bạn nâng cấp, tối ưu công việc của mình ở một tầm cao mới, có nhiều thời gian hơn có các công việc quan trọng, sáng tạo khác.
Hi vọng qua bài viết này, mình đã giúp bạn hiểu rõ hơn về VBA là gì và sớm quyết định ứng dụng VBA vào công việc, doanh nghiệp của bạn.
---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Học Lập trình chất lượng cao (Since 2002). Học thực tế + Tuyển dụng ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0383.180086
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
#niit #icthanoi #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java #php #python