Cách Tạo Menu Tùy Chỉnh Trong Google Sheets Bằng Apps Script

Tuân HoangTuân Hoang
21 tháng 8, 2026
Cập nhật: 10 tháng 9, 2026
1 phút đọc
Ảnh minh họa bài viết: 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.

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.

Chia sẻ bài viết:

Tuân Hoang

Tuân Hoang

Đội ngũ SheetStore

Google SheetsGoogle Apps ScriptCRMAutomationPhần mềm quản lý doanh nghiệp

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.

Nhận thông báo khi có bài viết mới. Không spam, hứa luôn! 😊

Bình luận (0)

Vui lòng đăng nhập để tham gia thảo luận