AIDuLieu.comAI Dữ Liệu
Tự động hoá việc lặp lại

Đọc mã macro và Apps Script do AI viết trước khi chạy: những dòng lệnh cần soi kỹ

Người không chuyên vẫn kiểm được mã VBA và Apps Script do AI viết: nhận ra lệnh xoá, ghi đè, tắt cảnh báo, gửi dữ liệu ra ngoài, và cách bắt AI tự giải thích.

Warehouse supervisor in Dong Nai reading a long printout with a pen at a standing desk, laptop with a blurred blank screen beside her, shelves of boxes behind, seen from the side

Khi nhờ AI viết macro VBA cho Excel hay Apps Script cho Google Sheets, bạn nhận về một đoạn mã trông gọn gàng, có chú thích, và thường chạy được ngay. Cái khó là bạn không biết lập trình, nên không biết đoạn mã đó có làm thêm việc gì ngoài việc bạn nhờ hay không. Phần lớn trường hợp là không, nhưng những trường hợp có thì hậu quả thường nặng: mất dữ liệu, ghi đè file, gửi thư nhầm người, hoặc mở quyền xem tệp cho bất kỳ ai có đường liên kết.

Bạn không cần học lập trình để tránh những chuyện đó. Chỉ cần biết một số dòng lệnh "đáng ngờ", biết cách bắt AI tự khai ra mã của nó làm gì, và giữ thói quen chạy thử trên bản sao. Bài này liệt kê các nhóm lệnh cần soi trong VBA và Apps Script, kèm quy trình kiểm mà người làm văn phòng làm được trong mười lăm phút.

Vì sao mã AI viết cần được đọc dù AI không có ý xấu

Trợ lý AI viết mã dựa trên mô tả của bạn và trên những mẫu mã phổ biến nó đã học. Khi mô tả thiếu, nó tự điền vào chỗ trống bằng phỏng đoán hợp lý nhất. Bạn nói "xoá các dòng trống", nó có thể hiểu là dòng trống hoàn toàn, hoặc dòng có ô đầu trống, và hai cách hiểu cho kết quả rất khác. Bạn nói "lưu kết quả", nó có thể lưu đè lên chính file đang mở.

AI cũng có thói quen viết mã "cho chạy êm": tắt các hộp thoại cảnh báo, bỏ qua lỗi để không bị dừng giữa chừng. Với lập trình viên, đó là kỹ thuật bình thường khi họ biết rõ mình đang làm gì. Với người dùng văn phòng, đó là việc tháo hết phanh trước khi xuống dốc.

Ngoài ra, macro và Apps Script có quyền rất rộng: chúng chạy với quyền của chính bạn. Macro có thể mở, sửa, xoá file trên máy bạn. Apps Script có thể đọc mọi bảng tính bạn có quyền, gửi thư từ hộp thư của bạn, chia sẻ tệp trên Drive của bạn. Một lỗi nhỏ trong mã vì vậy không dừng lại ở một bảng tính. Đọc mã trước khi chạy không phải vì nghi ngờ AI, mà vì bạn là người chịu trách nhiệm với những gì mã làm bằng tài khoản của bạn.

Các lệnh VBA cần dừng lại hỏi

Bạn không cần hiểu từng dòng, chỉ cần dùng chức năng tìm kiếm (Ctrl+F) trong trình soạn thảo VBA để dò các từ khoá dưới đây. Thấy từ nào, hỏi AI dòng đó làm gì và có thật sự cần không.

Từ khoá trong mãÝ nghĩaCâu hỏi nên đặt
Delete, ClearContents, ClearXoá dòng, cột, trang tính hoặc nội dung ôXoá đúng vùng nào, có hỏi xác nhận trước không?
Kill, RmDirXoá file hoặc thư mục trên máy, không qua thùng rácVì sao việc của mình cần xoá file?
Save, SaveAsLưu file, có thể lưu đèLưu vào đâu, tên gì, nếu trùng tên thì sao?
Application.DisplayAlerts = FalseTắt mọi hộp thoại cảnh báo của ExcelCó bật lại ở cuối không, cảnh báo nào bị bỏ qua?
On Error Resume NextGặp lỗi thì bỏ qua và chạy tiếpNếu một bước lỗi thì các bước sau có làm hỏng dữ liệu không?
Shell, CreateObjectChạy chương trình khác hoặc điều khiển ứng dụng khác như OutlookMã có gửi thư hay mở chương trình nào ngoài Excel không?
Workbooks.Open, DirMở hoặc duyệt file khác trên máyMã đụng tới những file nào ngoài file đang mở?

Sự xuất hiện của các từ khoá này không có nghĩa là mã sai. Macro tách file cần SaveAs, macro dọn dữ liệu cần Delete. Điều cần kiểm là chúng có khớp với việc bạn nhờ không. Một macro định dạng báo cáo mà có lệnh Kill là dấu hiệu phải hỏi ngay.

Các lệnh Apps Script cần dừng lại hỏi

Apps Script viết bằng JavaScript và chạy trên máy chủ của Google, với quyền tài khoản Google của bạn. Các dịch vụ dưới đây là nơi cần soi, vì chúng đi ra ngoài phạm vi một bảng tính.

Từ khoá trong mãÝ nghĩaCâu hỏi nên đặt
deleteSheet, deleteRows, clear, clearContentXoá trang hoặc dữ liệu trong bảng tínhXoá vùng nào, có giới hạn đúng trang cần xoá không?
MailApp, GmailAppGửi thư từ tài khoản của bạnGửi cho ai, địa chỉ lấy từ đâu, gửi bao nhiêu thư?
DriveApp, setTrashed, setSharingThao tác với tệp trên Drive, chuyển vào thùng rác, đổi quyền chia sẻCó mở quyền cho người ngoài hay xoá tệp nào không?
UrlFetchAppGửi yêu cầu tới một địa chỉ web bên ngoàiDữ liệu nào được gửi đi, gửi tới đâu, vì sao cần?
SpreadsheetApp.openById, openByUrlMở một bảng tính khácBảng tính nào, mã có ghi vào bảng đó không?
ScriptApp.newTriggerTạo trình kích hoạt chạy tự độngChạy bao lâu một lần, có cách tắt không?

Lần đầu chạy, Google sẽ hiện màn hình xin quyền liệt kê những gì mã muốn làm, như xem và quản lý bảng tính, gửi thư thay bạn, xem và xoá tệp trên Drive. Đọc kỹ danh sách này. Một đoạn mã chỉ để đóng dấu thời gian vào ô mà xin quyền gửi thư hay quản lý toàn bộ Drive là bất thường, và bạn nên dừng lại hỏi trước khi bấm cho phép.

Bắt AI tự khai mã của nó làm gì

Cách nhanh nhất để hiểu mã là yêu cầu chính AI giải thích, nhưng hỏi theo cách buộc nó phải liệt kê cụ thể chứ không tóm tắt chung chung. Quy trình dưới đây dùng được với bất kỳ trợ lý nào.

  1. Dán lại toàn bộ đoạn mã, kèm câu: "Giải thích từng đoạn của mã này cho người không biết lập trình, mỗi đoạn một câu."
  2. Hỏi tiếp: "Liệt kê mọi dòng có thể xoá dữ liệu, xoá file, lưu đè, gửi thư, gửi dữ liệu ra ngoài, đổi quyền chia sẻ, hoặc tắt cảnh báo. Với mỗi dòng, nói rõ nó tác động lên vùng nào hoặc tệp nào."
  3. So câu trả lời với việc bạn đã nhờ. Bất kỳ hành động nào ngoài mô tả ban đầu, yêu cầu AI bỏ đi hoặc giải thích vì sao bắt buộc phải có.
  4. Yêu cầu bổ sung chốt an toàn: hỏi xác nhận trước khi xoá, kiểm file tồn tại trước khi lưu, bật lại cảnh báo ở cuối, dừng hẳn khi gặp lỗi thay vì bỏ qua.
  5. Với mã quan trọng, dán sang một trợ lý AI khác và hỏi câu thứ hai. Hai trợ lý cùng chỉ ra một dòng nguy hiểm là tín hiệu rất đáng tin.

Lưu ý: AI giải thích mã cũng có thể sai, nhất là với mã dài. Vì vậy giải thích chỉ là lớp kiểm đầu tiên; lớp quyết định vẫn là chạy thử trên bản sao và đếm kết quả. Khi dán mã cho AI, kiểm xem mã có chứa mật khẩu, địa chỉ thư nội bộ hay mã bảng tính nhạy cảm không, nếu có thì thay bằng giá trị giả trước.

Thói quen chạy thử không bao giờ bỏ

Bản sao trước, bản thật sau. Với Excel, sao file thành bản khác tên. Với Google Sheets, dùng File, Make a copy; lưu ý bản sao có thể kéo theo cả Apps Script gắn kèm, và trình kích hoạt thì không được sao theo, nên đây là môi trường thử khá sạch.

Dữ liệu thử nhỏ. Thay vì chạy trên mười nghìn dòng, cắt còn hai mươi dòng có đủ các trường hợp: dòng bình thường, dòng có ô trống, dòng có ký tự lạ, dòng trùng. Kết quả nhỏ thì dễ kiểm bằng mắt.

Thư thử gửi về chính mình. Mã gửi thư phải được sửa tạm để mọi thư đi về hộp thư của bạn, và giới hạn chỉ gửi hai ba thư trong lần thử. Thư gửi nhầm cho khách thì không thu hồi được.

Đếm trước và sau. Ghi số dòng, số trang, số tệp trước khi chạy; chạy xong đếm lại và giải thích được mọi chênh lệch. Không giải thích được một chênh lệch nào thì chưa dùng thật.

Lưu lại phiên bản mã đã kiểm. Khi mã chạy đúng, chép nguyên văn vào một tài liệu kèm ngày và mô tả việc. Sau này ai đó sửa mã, bạn còn có bản đã biết là đúng để so lại.

Ví dụ giả định: một macro dọn dữ liệu và ba câu hỏi cứu cả bảng

Ví dụ giả định: nhân viên hành chính một trường tư thục ở Quảng Ngãi nhờ AI viết macro xoá các dòng trống trong bảng danh sách phụ huynh trước khi in. Mã trả về ngắn, có chú thích, nhưng khi dò từ khoá thì thấy ba điểm: dòng Application.DisplayAlerts = False ở đầu, dòng On Error Resume Next ngay sau, và vòng lặp xoá dòng chạy từ dòng 1 chứ không phải dòng 2.

Nhân viên hỏi AI từng điểm. Với vòng lặp, AI thừa nhận dòng tiêu đề sẽ bị xét như dữ liệu và có thể bị xoá nếu ô đầu tiên của nó trống, mà trong file thật ô A1 đúng là đang trống vì tiêu đề nằm ở ô gộp. Với dòng bỏ qua lỗi, AI giải thích rằng nếu bảng có ô bị khoá, macro sẽ lặng lẽ bỏ qua và báo xong như thể mọi thứ ổn. Với dòng tắt cảnh báo, nó không cần thiết cho việc xoá dòng.

Bản sửa lại bắt đầu từ dòng 2, xoá từ dưới lên, chỉ xoá dòng mà mọi ô đều trống chứ không chỉ ô đầu, bỏ hai dòng tắt cảnh báo và bỏ qua lỗi, thêm hộp thoại báo số dòng sắp xoá để xác nhận. Chạy trên bản sao, số dòng trước trừ số dòng sau đúng bằng con số hộp thoại báo. Ba câu hỏi mất mười phút, và chúng là khác biệt giữa một bảng sạch với một bảng mất tiêu đề ngay trước buổi họp phụ huynh.

Khi nào nên dừng và nhờ người có chuyên môn

Có những tình huống mà dù AI giải thích trơn tru, người không chuyên vẫn nên dừng lại. Thứ nhất là mã xử lý dữ liệu nhạy cảm như lương, hồ sơ nhân sự, thông tin sức khoẻ, số căn cước khách hàng: một lỗi nhỏ ở đây là sự cố dữ liệu cá nhân, không chỉ là sự cố bảng tính. Thứ hai là mã gửi thư hoặc tin nhắn hàng loạt ra ngoài công ty. Thứ ba là mã kết nối tới hệ thống khác qua địa chỉ web, như phần mềm kế toán, cổng thanh toán hay trang bán hàng.

Dấu hiệu khác là mã ngày càng dài sau mỗi lần sửa lỗi. Khi đoạn mã ban đầu ba mươi dòng phình thành ba trăm dòng sau mười vòng hỏi AI, khả năng cao là cách tiếp cận đã sai từ đầu, hoặc việc này cần công cụ khác. Lúc đó hãy quay lại mô tả việc từ đầu, hoặc hỏi người làm IT trong công ty.

Những nội dung sâu hơn về rà soát mã, kiểm thử và giữ khoá bí mật có ở trang AI Lập Trình; phần dữ liệu cá nhân có ở trang AI Bảo Mật, cùng hệ với trang này.

Câu hỏi thường gặp

Không biết lập trình thì đọc mã có ích gì?

Bạn không cần hiểu cú pháp, chỉ cần dò được các từ khoá liên quan tới xoá, lưu, gửi thư, chia sẻ và hỏi AI về đúng những dòng đó. Mười lăm phút dò như vậy đủ để phát hiện phần lớn hành động nằm ngoài việc bạn nhờ.

Màn hình Google báo ứng dụng chưa được xác minh có nghĩa là mã độc không?

Không hẳn. Apps Script do chính bạn tạo cũng hiện cảnh báo này vì nó chưa qua quy trình xác minh của Google. Điều cần đọc là danh sách quyền mã xin; quyền phải khớp với việc mã làm. Nếu mã do người ngoài gửi, đừng cấp quyền.

Dòng On Error Resume Next có nên xoá luôn không?

Với người không chuyên, nên yêu cầu AI thay bằng cách xử lý lỗi rõ ràng: gặp lỗi thì dừng và báo dòng nào lỗi. Bỏ qua lỗi im lặng khiến bạn tưởng macro chạy đúng trong khi một phần dữ liệu không được xử lý.

Mã lấy trên mạng thì có kiểm như mã AI viết không?

Có, và còn phải kỹ hơn vì bạn không biết người viết là ai. Không chạy macro trong file tải từ nguồn lạ, không dán mã từ diễn đàn vào bảng tính có dữ liệu thật khi chưa hiểu nó làm gì.

Làm sao tắt một Apps Script đang tự chạy theo giờ?

Mở trình soạn thảo Apps Script, vào mục Triggers ở thanh bên trái, xoá trình kích hoạt của hàm đó. Mã vẫn còn nhưng không tự chạy nữa. Có thể xem lịch sử các lần chạy ở mục Executions.

Có thể nhờ AI viết thêm phần kiểm an toàn vào mã không?

Có và nên làm. Yêu cầu AI thêm hộp thoại xác nhận trước khi xoá, kiểm tên file trước khi lưu, giới hạn số thư gửi mỗi lần chạy và ghi nhật ký mỗi lần mã chạy vào một trang riêng.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.

hoặc
Gọi ngay 0926 138 138