Microsoft Excel có nhiều hàm định sẵn làm phần lớn công việc. Hầu hết trường hợp không cần hàm khác ngoài các hàm tích hợp. Nhưng nếu cần chức năng không có trong hàm có sẵn?
Microsoft Excel cho phép tạo Custom Excel Functions (Hàm tùy chỉnh) hoặc User Defined Functions (Hàm do người dùng định nghĩa) dùng VBA. Tạo hàm tùy chỉnh với chức năng mong muốn, truy cập trong sheet Excel như hàm thường dùng "=" theo sau tên hàm. Hướng dẫn tạo hàm tùy chỉnh Excel bằng VBA.
Tạo hàm tùy chỉnh Excel
Vì tạo hàm bằng VBA, cần bật tab "Developer" trước. Mặc định tắt, bật bằng: Mở Excel → nút Excel → "Excel Options" → tích ô bên "Show Developer tab in the Ribbon (Hiển thị tab Developer trên Ribbon)".

Mở Visual Basic Editor: tab Developer → biểu tượng "Visual Basic".

Hoặc phím tắt "Alt + F11" mở Visual Basic Editor. Dùng phím tắt này thì không cần bật tab Developer.
Sẵn sàng tạo hàm tùy chỉnh. Click chuột phải "Microsoft Excel Objects" → "Insert" → "Module".

Mở cửa sổ trắng để viết code.

Trước khi viết code, hiểu cú pháp mẫu tạo Custom Excel Function:
Function myFunction (arguments) return type
myFunction = some_calculation
End Function
Không có câu lệnh 'Return' như ngôn ngữ lập trình thường.
Dán code vào cửa sổ trắng. Ví dụ: tạo hàm "FeesCalculate" tính '8%' giá trị truyền vào. Dùng kiểu trả về "Double" vì giá trị có thể thập phân. Code tuân theo cú pháp VBA.

Lưu workbook với đuôi '.xslm' để dùng sheet có Macro. Nếu không lưu đuôi này, sẽ báo lỗi.

Xong!
Giờ dùng User Defined Function trong sheet như hàm Excel thường bằng "=". Khi gõ "=" trong ô, hàm vừa tạo hiện lên cùng hàm tích hợp.

Ví dụ minh họa:

Hàm tùy chỉnh Excel không thay đổi môi trường Excel, do đó có giới hạn.
Giới hạn của hàm tùy chỉnh Excel
Hàm tùy chỉnh Excel không thể:
- Chèn, định dạng, hoặc xóa ô trên bảng tính.
- Thay đổi giá trị ô khác.
- Thêm tên vào workbook.
- Đổi tên, xóa, di chuyển, thêm sheet vào workbook.
Còn nhiều giới hạn khác, trên là một số.
Đây là các bước đơn giản tạo Custom Excel Functions.