Cách Tạo Menu Tùy Chỉnh Trong Google Sheets Bằng Apps Script
Menu mặc định của Google Sheets (File, Edit, View...) không thể thay đổi, nhưng Apps Script cho phép bạn thêm một menu tùy chỉnh riêng — nơi đặt các chức năng thường dùng như tạo báo cáo, gửi email hàng loạt, hay dọn dẹp dữ liệu chỉ với một cú click, thay vì phải mở Extensions > Apps Script mỗi lần chạy.
1. Vì Sao Nên Dùng Menu Tùy Chỉnh
Khi một file Google Sheets có nhiều script tự động hóa (tính lương, xuất báo cáo, đồng bộ dữ liệu...), người dùng không rành kỹ thuật sẽ gặp khó khi phải vào đúng function trong trình soạn thảo Apps Script để chạy. Menu tùy chỉnh biến các script đó thành nút bấm trực quan ngay trên giao diện Sheets, phù hợp khi chia sẻ file cho đồng nghiệp không biết lập trình.
2. Code Cơ Bản Để Tạo Menu
Trong Apps Script, hàm onOpen() chạy tự động mỗi khi file được mở, là nơi thích hợp để đăng ký menu:
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('Công Cụ')
.addItem('Tạo Báo Cáo', 'taoBaoCao')
.addItem('Gửi Email Hàng Loạt', 'guiEmail')
.addSeparator()
.addItem('Dọn Dẹp Dữ Liệu', 'donDep')
.addToUi();
}
Mỗi addItem gồm tên hiển thị trên menu và tên function sẽ được gọi khi người dùng bấm vào mục đó. addSeparator() thêm đường kẻ phân cách giữa các nhóm chức năng.
3. Tạo Menu Con (Submenu)
Với nhiều chức năng, nên nhóm theo submenu để menu chính gọn hơn:
function onOpen() {
var ui = SpreadsheetApp.getUi();
var menuBaoCao = ui.createMenu('Báo Cáo')
.addItem('Báo Cáo Ngày', 'baoCaoNgay')
.addItem('Báo Cáo Tháng', 'baoCaoThang');
ui.createMenu('Công Cụ')
.addSubMenu(menuBaoCao)
.addItem('Cài Đặt', 'moCaiDat')
.addToUi();
}
4. Thêm Hộp Thoại Xác Nhận
Với các thao tác có thể gây mất dữ liệu (xóa dòng, ghi đè), nên thêm hộp thoại xác nhận trước khi chạy:
function donDep() {
var ui = SpreadsheetApp.getUi();
var response = ui.alert('Xác nhận', 'Bạn có chắc muốn dọn dẹp dữ liệu?', ui.ButtonSet.YES_NO);
if (response == ui.Button.YES) {
// logic dọn dẹp dữ liệu
}
}
5. Lưu Ý Khi Triển Khai
- Menu chỉ hiện với người có quyền chỉnh sửa file — người xem (viewer) sẽ không thấy menu tùy chỉnh vì cần quyền chạy script.
- Lần đầu chạy cần cấp quyền (authorization) — mỗi người dùng mở file lần đầu sẽ được Google yêu cầu xác nhận quyền truy cập, đây là cơ chế bảo mật bắt buộc chứ không phải lỗi.
- Đặt tên function rõ ràng — vì tên function xuất hiện trong log lỗi, nên đặt tên mô tả đúng chức năng để dễ debug về sau.
Câu Hỏi Thường Gặp
Menu tùy chỉnh có hiển thị trên Google Sheets di động không?
Không. Menu tùy chỉnh qua Apps Script chỉ hoạt động trên phiên bản web (trình duyệt máy tính), không hỗ trợ trên ứng dụng di động Google Sheets.
Vì sao menu không xuất hiện sau khi thêm code?
Thường do function onOpen() chưa được lưu, hoặc file cần đóng mở lại (refresh) để Apps Script chạy lại quá trình khởi tạo menu.
Có thể thêm bao nhiêu mục vào menu tùy chỉnh?
Không có giới hạn cứng từ Google, nhưng nên giữ menu gọn (dưới 10 mục, nhóm bằng submenu nếu cần nhiều hơn) để dễ sử dụng.
📚 Bài Viết Liên Quan
- Phần Mềm Quản Lý Vận Tải Miễn Phí 2027: So Sánh Và Cách Chọn Cho Doanh Nghiệp Nhỏ
- Mẫu Excel/Google Sheets Quản Lý Học Phí Dạy Thêm 2026
- Quản Lý Phòng Khám Tư Nhân Hiệu Quả — Checklist Vận Hành
- Dạy Thêm Có Cần Đăng Ký Kinh Doanh? Quy Định Mới Nhất
- Cách Chỉnh Text Vừa Ô Trong Google Sheets — Wrap, Shrink, Auto-Fit 2026
Chia sẻ bài viết:
Tuân Hoang
Đội ngũ SheetStore
Google Workspace Certified, 5+ years experience
Bạn thấy bài viết hữu ích?
Đăng ký nhận thông báo khi có bài viết mới.