Microsoft Excel cho phép người dùng tự động hóa tính năng và lệnh bằng macro và script Visual Basic for Applications (VBA). VBA là ngôn ngữ lập trình Excel dùng để tạo macro. Nó cũng thực thi các lệnh tự động dựa trên điều kiện cụ thể.
Macro là chuỗi các lệnh được ghi lại trước. Chúng chạy tự động khi một lệnh cụ thể được đưa ra. Nếu bạn có tác vụ lặp lại trong Microsoft Excel như kế toán, quản lý dự án hoặc bảng lương, tự động hóa các quy trình này có thể tiết kiệm rất nhiều thời gian.
Dưới tab Developer (Nhà phát triển) trên Ribbon (Dải công cụ) trong Excel, người dùng có thể ghi lại chuột và phím tắt (macro). Tuy nhiên, một số chức năng đòi hỏi lập trình sâu hơn những gì macro cung cấp. Đây là lúc scripting VBA trở nên cực kỳ hữu ích. Nó cho phép người dùng tạo script phức tạp hơn.
Trong bài viết này, chúng tôi sẽ giải thích:
- Bật Script & Macro
- Cách Tạo Macro Trong Excel
- Ví Dụ Cụ Thể Của Macro
- Tìm Hiểu Thêm Về VBA
- Tạo Nút Để Bắt Đầu Với VBA
- Thêm Code Để Cho Nút Chức Năng
- Kiểm Tra Hoạt Động
Bật Script & Macro
Trước khi tạo macro hoặc script VBA trong Excel, bạn phải bật tab Developer trên menu Ribbon. Tab Developer không được bật mặc định. Để bật nó:
- Mở bảng tính Excel.
- Nhấp vào File > Options > Customize Ribbon.
- Đánh dấu vào ô bên cạnh Developer.
- Nhấp vào tab Developer từ menu Ribbon.
- Tiếp theo, nhấp vào Macro Security (Bảo mật Macro) và đánh dấu ô bên cạnh Enable all macros (not recommended; potentially dangerous code can run) (Bật tất cả macro - không khuyến khích; mã nguy hiểm có thể chạy).
- Sau đó nhấp OK.
Lý do macro không bật mặc định và có cảnh báo là vì chúng là mã máy tính có thể chứa phần mềm độc hại.
Đảm bảo tài liệu đến từ nguồn tin cậy nếu bạn làm việc trên dự án chung trong Excel và các chương trình Microsoft khác.
Khi hoàn thành sử dụng script và macro, hãy tắt tất cả macro để ngăn mã độc tiềm ẩn lây lan sang tài liệu khác.
Tạo Macro Trong Excel
Tất cả hành động bạn thực hiện trong Excel khi ghi macro đều được thêm vào nó.
- Từ tab Developer, nhấp vào Record Macro (Ghi Macro).
- Nhập Macro name (Tên macro), Shortcut key (Phím tắt), và Description (Mô tả). Tên macro phải bắt đầu bằng chữ cái và không có khoảng trắng. Phím tắt phải là một chữ cái.
Quyết định nơi lưu macro từ các tùy chọn sau:
- Personal Macro Workbook (Sổ làm việc Macro cá nhân): Tạo tài liệu Excel ẩn với macro lưu trữ để dùng với bất kỳ tài liệu Excel nào.
- New Workbook (Sổ làm việc mới): Tạo tài liệu Excel mới để lưu macro đã tạo.
- This Workbook (Sổ làm việc này): Chỉ áp dụng cho tài liệu bạn đang chỉnh sửa.
Khi xong, nhấp OK.
- Thực hiện các hành động bạn muốn tự động hóa. Khi hoàn tất, nhấp Stop Recording (Dừng ghi).
- Khi muốn truy cập macro, dùng phím tắt bạn đã gán.
Ví Dụ Cụ Thể Của Macro
Hãy bắt đầu với bảng tính đơn giản cho khách hàng và số tiền họ nợ. Chúng ta sẽ tạo macro để định dạng bảng tính.
Giả sử bạn quyết định tất cả bảng tính nên dùng định dạng khác như tách họ và tên thành cột riêng biệt.
Bạn có thể thay đổi thủ công. Hoặc tạo chương trình dùng macro để tự động định dạng đúng cho bạn.
Ghi Macro
- Nhấp vào Record Macro. Đặt tên Format_Customer_Data và nhấp OK.
- Để có định dạng mong muốn, thay đổi tên cột đầu thành First Name (Tên).
- Sau đó chèn cột bên cạnh cột A và đặt tên Last Name (Họ).
- Chọn tất cả tên trong cột đầu (vẫn bao gồm cả họ và tên), nhấp vào Data (Dữ liệu) từ điều hướng ribbon.
- Nhấp vào Text to Columns (Văn bản thành cột).
- Chọn Delimited (Có dấu phân cách) > Next > Separate by Space (Tách bằng khoảng trắng) > Next > Finish. Xem ảnh chụp màn hình dưới và cách họ/tên được tách bằng quy trình trên.
- Để định dạng trường Balance Due (Số dư nợ), chọn các số tiền. Nhấp Home > Conditional Formatting (Định dạng có điều kiện) > Highlight Cell Rules (Quy tắc làm nổi bật ô) > Greater Than (Lớn hơn) > 0.
Điều này sẽ làm nổi bật các ô có số dư nợ. Chúng tôi thêm vài khách hàng không nợ để minh họa thêm định dạng.
- Quay lại Developer và nhấp Stop Recording.
Áp Dụng Macro
Hãy bắt đầu với bảng tính gốc trước khi ghi macro để định dạng nó đúng. Nhấp vào Macros, chọn và Run (Chạy) macro vừa tạo.
Khi chạy macro, tất cả định dạng được thực hiện tự động. Macro vừa tạo được lưu trong Visual Basic Editor.
Người dùng có thể chạy macro theo nhiều cách khác nhau. Đọc "Run a macro" để tìm hiểu thêm.
Tìm Hiểu Thêm Về VBA
Để tìm hiểu về VBA, nhấp vào Macro từ tab Developer. Tìm macro bạn đã tạo và nhấp Edit (Chỉnh sửa).
Mã bạn thấy trong khung trên là mã được tạo khi bạn ghi macro.
Đó cũng là mã bạn sẽ chạy khi muốn định dạng các bảng tính thanh toán khách hàng khác theo cùng cách.
Tạo Nút Để Bắt Đầu Với VBA
Sử dụng cùng bảng tính trên với khách hàng và số tiền nợ, hãy tạo bộ chuyển đổi tiền tệ.
- Để chèn phần tử nút, điều hướng đến tab Developer.
- Chọn ActiveX Command Button (Nút lệnh ActiveX) từ menu thả xuống bên cạnh Insert (Chèn) trong phần Controls (Điều khiển).
- Kéo nút đến vị trí bất kỳ trên bảng tính để dễ truy cập và thay đổi sau nếu muốn.
- Để gán code, nhấp chuột phải vào nút và chọn Properties (Thuộc tính). Giữ Name là CommandButton và Caption là Convert (Chuyển đổi - đây là văn bản nút).
Thêm Code Để Cho Nút Chức Năng
VBA coding không diễn ra trong giao diện Excel. Nó được thực hiện trong môi trường riêng biệt.
- Đi đến tab Developer và đảm bảo Design Mode (Chế độ thiết kế) đang hoạt động.
- Để truy cập mã của nút vừa tạo, nhấp chuột phải vào nó và chọn View Code (Xem mã).
- Nhìn vào mã trong ảnh chụp dưới, lưu ý phần đầu (Private Sub) và cuối (End Sub) của mã đã có sẵn.
- Mã dưới đây sẽ điều khiển quy trình chuyển đổi tiền tệ.
ActiveCell.Value = (ActiveCell * 1.28)
Mục đích phần này là chuyển đổi tiền tệ trong bảng tính. Script trên phản ánh tỷ giá từ GBP sang USD. Giá trị mới của ô sẽ là giá trị hiện tại nhân 1.28.
Ảnh chụp dưới đây cho thấy mã trông như thế nào trong cửa sổ VBA sau khi chèn.
- Đi đến File trong điều hướng trên cùng và nhấp vào Close and Return to Microsoft Excel để quay lại giao diện Excel chính.
Có Hoạt Động Không?
Trước khi kiểm tra mã, bạn phải tắt Design Mode (nhấp vào nó) để tránh sửa đổi thêm và cho nút hoạt động.
- Nhập bất kỳ số nào vào bảng tính và nhấp nút Convert. Nếu giá trị số tăng khoảng một phần tư, nó đã hoạt động.
Với ví dụ này, tôi nhập số 4 vào ô. Sau khi nhấp Convert, số thành 5.12. Vì 4 nhân 1.28 bằng 5.12, mã đã thực thi đúng.
Bây giờ bạn đã hiểu cách tạo macro hoặc script trong Excel, bạn có thể dùng chúng để tự động hóa nhiều hành động trong Excel.