VBA là cách gọi tắt của Visual Basic for Application, là một ngôn ngữ lập trình dựa trên ngôn ngữ VB được phát triển bởi Microsoft.
VBA ngoài được tích hợp vào chung với Microsoft Office như Excel, Word, PowerPoint hay Outlook, nó còn được sử dụng trong cả Autocad để tạo ra các bản vẽ được lập trình sẵn.
Còn Macro, đây là một công cụ giúp bạn ghi lại các thao tác thực hiện dưới dạng câu lệnh VBA khi thao tác trên Excel. Đây là công cụ có thể giúp bạn tự động hóa nhiều thao tác trên Excel và trong bài chia sẻ này mình sẽ chia sẻ với các bạn cách để thực hiện.
Cách sử dụng Macro và VBA trong Microsoft Excel
Đầu tiên, đê thuận tiện bạn nên đưa công cụ Developer ra thanh Ribbon Toolbar của Excel.
Cách thêm công cụ Developer vào Ribbon Toolbar Excel.
Mặc định sau khi cài đặt xong thì công cụ Developer sẽ ẩn đi, vì vậy để hiện Developer trên Toolbar bạn cần vào File> Option và cho phép Developer hiện trên thanh công cụ.
✅Nếu Office của bạn không tìm thấy công cụ Developer trong Options thì có lẽ khi cài đặt bạn đã chọn không cài gói hỗ trợ VBA. Để bổ xung gói hỗ trợ VBA bạn tham khảo bài viết: Thêm gói cài đặt Visual Basic Application Microsoft Office
Sau khi đưa Developer ra thanh công cụ Ribbon Toolbar, bạn sẽ thấy các thành phần chính để xây dựng VBA như sau:
- Code: Bao gồm quản lý VBA, và Macro.
- Controls: Bao gồm các Object để liên kết với các thành phần trong VBA.
Cách sử dụng giao diện quản lý VBA
Để vào giao diện quản lý VBA thì bạn có thể sử dụng 2 cách:
- Chuyển sang Developer và chọn Visual Basic.
- Hoặc sử dụng tổ hợp phím Alt +F11
Trong giao diện VBA sẽ có các thành phần như:
- Thanh công cụ.
- Cây menu quản lý Sheet, Module, Class, UserForm
- Màn hình soạn thảo lệnh.
- Màn hình cho phép bạn tạo các điểm để xem khi Debug lệnh.
Cách thêm và chức năng của Sheet, Module, Class, UserForm
Để thêm các Objet vào 1 VBA Project bạn có thể chuột phải vào menu bên trái, sau đó chọn Insert và thêm vào Object để quản lý. Riêng Sheet sẽ được tự động tạo ra khi bạn thêm Sheet mới từ File Excel.
Chức năng của Sheet, Module, Class, UserForm:
- Sheet1…Sheetn: được tự động tạo ra theo số Sheet từ File. Khi tạo lệnh trong từng Sheet thì lệnh đó chỉ được gọi và sử dụng từ Sheet đó.
- UserForm: được dùng để tạo giao diện người dùng và viết lệnh.
- Module: khác với Sheet, module có thể được truy xuất từ tất cả các Sheet và Module, Class khác trong cùng một VBA Project.
- Class: cũng tương tự như Module nhưng Class được dùng để tạo các Objet với các thuộc tính được bạn định nghĩa.
Cách xây dựng một hàm cơ bản trong VBA và gọi hàm từ Excel.
👉Để hình dung đơn giản về cách để viết lệnh trong VBA mình sẽ làm một ví dụ cụ thể về hàm cộng, ví dụ như tính tổng của giá trị cộng với 3.
Khi viết hàm bình thường, bạn có thể sẽ viết như A2 + 3. Nhưng khi sử dụng VBA để tạo hàm mới bạn có thể sẽ thực hiện như sau:
- Tạo một Module mới.
- Thêm vào Module vừa tạo đoạn lệnh sau.
Function Cong_Them_3(so As Integer) Cong_Them_3 = so + 3 End Function
Trong đó:
- Function: Khai báo hàm kiểu trả về.
- Cong_Them_3: Là tên hàm.
- so As Integer: khai báo biến so là kiểu Interger (kiểu số).
- Cong_Them_3 = so + 3: tổng của biến so +3 sẽ được trả về hàm.
- End Function: kết thúc hàm.
Khi bạn đã tạo hàm trong Module xong thì việc gọi và sử dụng hàm trong Excel cũng tương tự như các hàm thông thường khác. Tức là khi bạn gọi hàm từ VBA bạn sẽ nhập dấu = và nhập các từ chữ cái đầu của hàm thì Excel sẽ tự động gợi ý các hàm trong đó có cả hàm VBA.
Cách khởi tạo và sử dụng Macro
Một cách đơn giản hơn việc tự tạo các hàm VBA là bạn có thể tận dụng cộng cụ Macro. Công cụ này sẽ tạo ra một Module mới khi bạn khởi tạo Macro và ghi lại toàn bộ thao tác trên bảng tính Excel dưới dạng các câu lệnh VBA.
Ở đây mình có 1 ví dụ là tạo một Macro tự động cộng thêm 1 (AutoFill).
Đầu tiên, bạn chọn vào Record Macro
Sau đó, hộp thoại Record Macro hiện lên, đặt lại tên cho Macro để dễ quản lý. OK để bắt đầu Macro ghi lại thao tác của bạn.
Ở đây mình sẽ thực hiện thứ tự như sau:
- Chọn Cells A1.
- Nhập vào Cells A1 giá trị 1
- Sau đó thực hiện AutoFill đến Cells A10.
Sau khi AutoFill xong, bạn mở để xem Macro đã ghi lại những thao tác gì. Và hãy phân tích các dòng lệnh có nghĩa gì nhé:
- Là lệnh thao tác chọn Cells A1.
- Ghi vào Cells đang được chọn giá trị là 1. Tức là ở câu lệnh (1) bạn đã chọn Cells A1 thì ActiveCell chính là Cell A1.
- Lệnh thực hiện AutoFill, tức là giá trị tiếp theo sẽ được cộng thêm 1.
- Vùng giá trị sau khi AutoFill sẽ được chọn là Range(“A1:A10”).
Để ngừng Macro, bạn chọn vào Stop Recording.
✅ Bạn nên Stop Recording Macro sau mỗi lần thực hiện xong một hoat động nhé. Vì Macro sẽ ghi lại toàn bộ thao tác nên có thể sẽ ghi lại những thao tác thừa.
Bây giờ để áp dụng lại các thao tác bạn vừa thực hiện đã được Macro ghi lại. Bạn hãy tạo một Sheet mới và chọn thêm nút nhấn liên kết tới Macro.
Sau đó, chọn vào tên Macro bạn vừa tạo và OK để áp dụng.
Cuối cùng, sau khi tạo xong nút nhấn thì bạn hãy Click vào nút nhấn để xem kết quả nhé.
Cách lưu file chứa Macro
Để lưu một file có Macro hay VBA thì bạn hãy lưu file bằng định dạng: Excel Macro-Enable Workbook.
✅ Lưu ý: Không lưu bằng định dạng khác vì Macro sẽ bị mất.
Cách mở file chứa Macro
Để mở các file có Macro thì khi mở bạn cần chọn Enable Content (1) để cho phép chạy Macro hoặc chọn vào Macro Security (2) để mặc định theo tùy chọn.
✅ Lưu ý: Macro cũng là một tập hợp thực thi các câu lệnh, nên có thể tự động chạy các câu lệnh để tải và cài đặt chương trình khác mà bạn không hề hay biết. Chính vì vậy các bạn chỉ mở cách file Macro từ các nguồn uy tín để tránh bị nhiễm VirusMacro.
OK! Bài viết này chia sẻ với các bạn những điều cơ bản nhất để các bạn tổng quát và hình dung được VBA và Macro là gì và hoạt động như thế nào.
Bạn hãy cố gắng làm quen và sử dụng 2 công cụ này vì nó sẽ giúp bạn tạo ra tốc độ cũng như điều khác biệt trong việc thao tác và quản lý dữ liệu.
Chúc các bạn thành công!
Tôi là Nguyễn Văn Sỹ có 15 năm kinh nghiệm trong lĩnh vực thiết kế, thi công đồ nội thất; với niềm đam mê và yêu nghề tôi đã tạo ra những thiết kếtuyệt vời trong phòng khách, phòng bếp, phòng ngủ, sân vườn… Ngoài ra với khả năng nghiên cứu, tìm tòi học hỏi các kiến thức đời sống xã hội và sự kiện, tôi đã đưa ra những kiến thức bổ ích tại website nhaxinhplaza.vn. Hy vọng những kiến thức mà tôi chia sẻ này sẽ giúp ích cho bạn!