VBA là gì? Ngôn ngữ Macro Excel

Nếu bạn đã từng sử dụng macro trong Excel, bạn đã sử dụng Visual Basic for Applications (VBA). VBA là mã lập trình có thể đọc được (và có thể chỉnh sửa) được tạo ra khi bạn ghi macro. Khi bạn chạy macro, đó là mã này mà Excel đọc để phát lại các hành động của bạn.

Sau đây là một loạt các câu hỏi thường gặp về VBA, có câu trả lời cho cả những người mới làm quen với macro Excel và những lập trình viên dày dạn kinh nghiệm.

VBA được sử dụng để làm gì trong Excel?

VBA được sử dụng để viết macro, tự động hóa các tác vụ đơn giản và phức tạp trong Excel.

Người dùng Microsoft Excel thường sẽ thấy mình lặp đi lặp lại cùng một chuỗi tác vụ. Đôi khi đây là những tác vụ nhỏ như sao chép-dán các tập hợp con dữ liệu vào các trang tính khác nhau và đôi khi các tác vụ này phức tạp hơn như tải dữ liệu lên 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 lần bấm nút.

Làm cách nào để bắt đầu với 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 đượ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, giúp bạn có một bước đệm để học cách viết mã macro của riêng mình từ đầu.

Để biết thêm thông tin, hãy xem bài viết “Cách ghi Macro”.

Làm cách nào để truy cập mã VBA?

Trình chỉnh sửa VBA có thể được mở bất kỳ lúc nào bằng cách nhấn ALT + F11 phim tăt. Từ đây, bạn có thể truy cập mã cho tất cả các sổ làm việc đang mở.

Bạn có thể bấm đúp vào bất kỳ đối tượng sổ làm việc, trang tính hoặc mô-đun nào trong Dự án cửa sổ để hiển thị mã VBA có trong đó. Các macro đã ghi sẽ luôn xuất hiện trong các mô-đun, đây là nơi bạn thường muốn viết các macro của riêng mình.

Để biết thêm thông tin về chỉnh sửa macro, hãy xem bài viết "Chỉnh sửa macro Excel VBA".

VBA có thể làm gì?

Đầu tiên: nếu có điều 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 tài nguyên trực tuyến), bạn có thể xâu chuỗi nhiều hành động lại với nhau trong một macro duy nhất.

Thứ hai: bạn có thể sử dụng VBA để viết các hàm do người dùng xác định để sử dụng trong các công thức trang tính - chẳng hạn như hàm “= SUM ()”. Mặc dù Excel đã đóng gói rất nhiều hàm, nhưng nếu bạn thấy mình muốn một hàm cụ thể hơn cho ngành hoặc nơi làm việc của mình, bạn có thể thêm nó bằng VBA.

Ngày thứ ba: 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 mình. Điều này có nghĩa là một macro có thể không chỉ là một bản ghi các hành động - nó có thể là một chương trình thực với sự lặp lại và ra quyết định một cách thông minh.

Thứ tư: VBA cho phép bạn xây dựng giao diện người dùng, giúp người dùng tương tác với macro của bạn một cách dễ dàng hơn. Các giao diện này có thể là các nút đơn giản trên trang tính hoặc các UserForms phức tạp với các điều khiển phong phú như TreeViews và FlexGrids.

(Xem bài viết “Thêm nút và chỉ định Macro trong Excel” làm điểm bắt đầu.)

Thứ năm nhưng không phải cuối cùng: VBA cho phép bạn khai thác hầu hết mọi tài nguyên trên máy tính hoặc 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 nhiều thứ hơn Excel theo cách này, chẳng hạn như truy cập các dịch vụ web và cơ sở dữ liệu, phân tích cú pháp tệp XML, tương tác với các ứng dụng Microsoft Office khác, v.v.

VB và VBA có giống nhau không?

Ngôn ngữ VBA giống với Visual Basic 6.0. Nếu bạn có kinh nghiệm viết mã VB6, bạn có thể viết VBA.

VB 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 gỡ lỗi tương tự như cửa sổ ‘Project’ và ‘Properties’. Trình chỉnh sửa Biểu mẫu cũng rất tương tự, 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 tương tự với VBA là Visual Basic .NET. Mặc dù các ngôn ngữ này chia sẻ nhiều từ khóa và cú pháp giống nhau, mã giữa các ngôn ngữ này ít tương tác hơn. Bạn sẽ không phải viết lại nhiều (nếu có) để chuyển một thủ tục từ VB6 sang VBA, nhưng bạn không thể làm điều tương tự từ VB.NET.

Sự khác biệt giữa macro và VBA là gì?

VBA chỉ là ngôn ngữ mà macro được viết bằng. Nếu macro của bạn là một câu chuyện, thì VBA là ngữ pháp và từ điển mà nó được viết bằng.

Sự khác biệt giữa macro và script là gì?

Tập lệnh sử dụng một tập hợp con hạn chế 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 tệp sổ làm việc Excel 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 hàm Excel khác nhau và thêm chức năng bổ sung vào sổ làm việc.

Các tập lệnh đượ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 thi 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 các tác vụ quản trị nhất định trên máy tính hoặc mạng.

Một nhà phát triển VBA làm gì?

Thông thường, những người tạo macro không phải là nhà phát triển - họ là nhà phân tích, thương nhân, kế toán hoặc nhà khoa học, những người đã được đào tạo về lập trình và sử dụng VBA trên cơ sở đặc biệt hơn.

Những người tập trung vào phát triển VBA có xu hướng tạo các công cụ tinh chỉnh hơn - họ tạo Phần bổ trợ, giao diện người dùng với Biểu mẫu, trang tổng quan tương tác, trình tạo báo cáo, v.v.

Tại sao VBA lại quan trọng?

VBA được bao gồm dưới dạng tiêu chuẩn trong tất cả các ứng dụng Microsoft Office, bao gồm cả Excel. 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, tất cả đều có quy trình làm việc và trường hợp sử dụng riêng.

Bằng cách không sử dụng tự động hóa, vô số giờ làm việc bị lãng phí mỗi tuần để thực hiện các công việc nhàm chán, lặp đi lặp lại với tốc độ của con người. Tự động hóa với VBA có thể thực hiện các tác vụ tương tự với tốc độ nhanh như chớp của máy tính, cho phép người dùng tập trung vào các khía cạnh quan trọng trong công việc của họ, làm việc hiệu quả hơn - và có thể ra khỏi văn phòng sớm hơn một chút!

VBA có phải là một ngôn ngữ lập trình tốt không?

VBA có các phần tử lập trình điển hình như biến, mảng, hàm, quyết định và vòng lặp. Nó có cú pháp dễ đọc và có thể khai thác nhiều sức mạnh từ Windows và các dịch vụ khác.

Mặt khác, việc xử lý lỗi không được tốt trong VBA. Trong khi các ngôn ngữ khác sử dụng khối mã “try-catch-last”, VBA sử dụng câu lệnh “On Error” để sửa đổi cách macro hoạt động khi xảy ra lỗi.

Ngoài ra, VBA không 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ó không thể giao tiếp với các API lập trình mới hơn như nền tảng .NET.

VBA có hướng đối tượng không?

VBA có một số hỗ trợ 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ách sử dụng các lớp
  • Tính đa hình: từ khóa Triển khai cho phép người lập trình sử dụng các lớp khác làm giao diện

Tuy nhiên, theo nghĩa chặt chẽ, VBA không phải là hướng đối tượng. Nó đáng chú ý là 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 chức năng của các loại hiện có.

Bạn sẽ giúp sự phát triển của trang web, chia sẻ trang web với bạn bè

wave wave wave wave wave