Shirley 個人圖標
Shirley|AI 個人工作流實戰課
學員操作手冊|Apps Script × 自動產表 × 通知信
M5-M6 Student Manual
M5-M6|Apps Script 學員操作手冊

自動產生自主檢查表,並寄送通知信

本單元會帶你使用課堂提供的「自主檢查表.xlsx」作為模板,從 Google Sheet 資料表自動產生「首件 / 自主檢查記錄表」,並用測試信箱完成通知信寄送。

一、本單元你會完成什麼?

本單元結束前,你會完成一次從 Google Sheet 自動產生自主檢查表,並寄出測試通知信的完整流程。

成果 1:一份可被程式讀取的資料表

你會確認 Google Sheet 中的「資料表」欄位完整,包含製令、品名、規格、製程、數量、產表狀態與通知信箱。

成果 2:一張自主檢查表模板

你會將課堂提供的「自主檢查表.xlsx」匯入 Google Sheet,並將「首件檢查表」作為模板使用。

成果 3:自動產生的檢查表

你會執行 Apps Script,讓系統依據資料表每一列,自動複製模板並產生新的自主檢查表。

成果 4:一封測試通知信

你會使用測試信箱寄出通知信,確認信件主旨、內容、檢查表連結與收件人是否正確。

二、認識本單元要產出的自主檢查表

本單元的目標,是讓 Apps Script 依照資料表中的每一筆製程資料,自動產生一張「首件 / 自主檢查記錄表」。

課堂提供的 自主檢查表.xlsx 會作為模板使用。Apps Script 會先複製模板,再把資料表中的製程、製造批號、產品名稱、數量等資料填入指定位置。

自主檢查表上的欄位 資料來源 是否由程式自動填入 說明
年月日 系統日期 / 產表日期 可由 Apps Script 自動帶入產表當天日期。
機台 資料表中的機台欄位 視情況 若資料表有機台欄位,可自動帶入;若沒有,可留給現場填寫。
製程 製程名稱 依照 SFT 途程單中的加工順序與製程名稱帶入。
製造批號 製令編號 用來識別這張檢查表對應哪一張製令。
產品名稱 品名 + 規格 可將品名與規格合併後帶入。
數量 預計產量 帶入本製程或本製令的數量。
尺寸 / 外觀 / 自主檢查 模板固定項目 保留在模板中,讓現場依實際檢查結果填寫。
異常狀況 / 處理結果 現場檢查結果 由現場人員檢查後填寫。
操作員 / 單位主管 / 會簽單位 現場簽核資料 視情況 可選擇由程式帶入負責人,也可保留人工簽核。
學員提醒: 本單元的自動化目標是「減少前置抄寫」,不是取代現場檢查與判定。尺寸、外觀、自主檢查、異常狀況與處理結果,仍需由現場人員依實際狀況填寫。

三、開始前準備清單

開始操作 Apps Script 之前,請先確認你已經準備好以下內容。

準備項目 你需要完成什麼 完成確認
Google Sheet 檔案 已建立一份 Google Sheet,並延續 M3-M4 建立的資料中心。 □ 已完成
資料表頁籤 已建立「資料表」頁籤,第 1 列是欄位名稱,第 2 列開始是資料。 □ 已完成
必要欄位 至少包含製令編號、品名、規格、預計產量、加工順序、製程名稱、通知信箱、產表狀態、通知狀態。 □ 已完成
自主檢查表模板 已將「自主檢查表.xlsx」匯入 Google Sheet,並準備作為模板使用。 □ 已完成
測試信箱 通知信箱先使用自己的測試信箱,不要一開始就填正式大量收件人。 □ 已完成
重要提醒: 請先用測試資料與測試信箱操作。確認自動產表與寄信都正確後,再改成正式資料。

四、操作總流程:請照這個順序完成

步驟 你要做的事 使用工具 完成標準
Step 1 確認資料表欄位與資料內容 Google Sheet 資料表欄位完整,狀態欄位已設定。
Step 2 上傳自主檢查表 Excel Google Drive 已可用 Google 試算表開啟。
Step 3 將「首件檢查表」複製到練習檔 Google Sheet 練習檔中已有模板頁籤。
Step 4 將模板頁籤改名為「模板」 Google Sheet 頁籤名稱與程式設定一致。
Step 5 確認模板要填入的位置 Google Sheet 製程、批號、產品、數量位置固定。
Step 6 打開 Apps Script 並貼上產表程式 Apps Script 程式已儲存並可準備執行。
Step 7 執行產表程式並授權 Apps Script 已產生新的自主檢查表。
Step 8 執行通知信程式 Apps Script / Gmail 測試信箱收到通知信。

五、Apps Script 在本單元扮演什麼角色?

Apps Script 就像一位「照規則辦事的行政助理」:它不會自己設計流程,但只要資料欄位、模板位置與通知條件清楚,它就可以重複執行。

讀資料

從 Google Sheet 讀取製令、品名、規格、製程、數量、信箱、狀態等欄位。

產表單

複製「模板」頁籤,填入製程、製造批號、產品名稱、數量,產生新的自主檢查表。

送通知

依照產表狀態與通知狀態,將檢查表連結寄給指定測試信箱或負責人。

學員提醒: 本單元不是要你立刻變成工程師,而是讓你看懂自動化的基本邏輯。你只要能說清楚資料欄位、模板位置、產表條件與通知規則,就能和資訊人員或顧問有效溝通。

六、自動產表核心流程

本課程以「SFT 途程單 → 首件 / 自主檢查記錄表」為範例。每一道加工順序,對應一張自主檢查表。

1

讀取資料表

取得每一列製程資料。

2

檢查產表狀態

避免重複產生。

3

複製模板

複製自主檢查表模板。

4

填入欄位

製程、批號、產品、數量。

5

更新狀態

標記為已產生,回寫連結。

6

寄出通知

寄信給測試信箱或負責人。

七、自動產表前,資料表必須準備哪些欄位?

自動化不是從寫程式開始,而是從欄位設計開始。以下欄位建議放在「資料表」頁籤。

欄位順序 欄位名稱 用途 注意事項
A製令編號帶入自主檢查表的製造批號。格式要一致,避免空白或多餘符號。
B品號產品代碼,方便查詢。視需求使用。
C品名帶入產品名稱。若品名很長,可與規格分欄管理。
D規格與品名合併顯示。避免換行與特殊符號過多。
E預計產量帶入自主檢查表的數量。建議只放數字,單位另外標示。
F加工順序決定每一道製程的順序與命名。例如 0010、0020,格式要固定。
G製程名稱帶入自主檢查表的製程欄位。建議建立標準製程名稱。
H機台帶入自主檢查表的機台欄位。若沒有資料,可留空給現場填寫。
I操作員可帶入表單底部操作員欄位,或保留人工填寫。視公司流程決定。
J負責人後續追蹤與通知使用。可先放部門窗口。
K通知信箱MailApp 寄信用。信箱錯誤會導致寄送失敗。
L產表狀態判斷是否已經產生過檢查表。建議使用未產生、已產生、產生失敗。
M檢查表連結記錄產生後的新表單連結。方便後續查詢與寄信。
N通知狀態判斷是否已寄出通知信。建議使用未通知、已通知、通知失敗。
O最後通知時間記錄寄信時間。方便追蹤。
P錯誤訊息產表或寄信失敗時記錄原因。方便排除問題。
自動化口訣: 程式只會照欄位做事。欄位越穩,程式越穩;欄位一直改,自動化就容易壞。

八、將自主檢查表 Excel 匯入 Google Sheet

課堂提供的「自主檢查表.xlsx」中包含「首件檢查表」頁籤。本單元會將這張表作為 Apps Script 複製用的模板。

操作步驟:匯入自主檢查表模板

  1. 打開 Google Drive。
  2. 上傳課堂提供的「自主檢查表.xlsx」。
  3. 上傳完成後,對檔案按右鍵。
  4. 選擇「以 Google 試算表開啟」。
  5. 確認工作表中有「首件檢查表」頁籤。
  6. 將「首件檢查表」複製到你的練習 Google Sheet 中。
  7. 將該頁籤重新命名為「模板」。
  8. 確認模板版面沒有跑掉,合併儲存格、表格線、標題與欄位仍然正常。
操作提醒: Excel 匯入 Google Sheet 後,版面可能會有些微跑版。請先確認標題、欄位、合併儲存格與表格線是否仍符合使用需求。

九、模板儲存格對應表

Apps Script 會把資料表中的欄位,填入自主檢查表模板的指定儲存格。請確認你的模板儲存格位置固定,並與下方對應表一致。

注意:下方儲存格位置為課堂練習建議位置。若你匯入 Excel 後版面位置不同,請依實際模板位置調整程式中的 getRange。

資料表欄位 要填入自主檢查表的位置 程式範例 注意事項
產表日期 日期欄位 newSheet.getRange('N2').setValue(new Date()) 請依實際日期欄位位置調整 N2。
機台 機台欄位 newSheet.getRange('B4').setValue(machine) 若資料表沒有機台,可留空。
製程名稱 製程欄位 newSheet.getRange('D4').setValue(processName) 請依實際模板位置調整 D4。
製令編號 製造批號欄位 newSheet.getRange('F4').setValue(orderNo) 製令編號通常是追蹤主鍵,請勿空白。
品名 + 規格 產品名稱欄位 newSheet.getRange('I4').setValue(productName + ' / ' + spec) 若產品名稱太長,可考慮縮小字體或換行。
預計產量 數量欄位 newSheet.getRange('Q4').setValue(qty) 建議數量欄位只填數字,單位另外標示。
操作員 操作員欄位 newSheet.getRange('Q30').setValue(operator) 若操作員需現場簽名,可保留空白。
重要提醒: 如果自主檢查表中有合併儲存格,Apps Script 要寫入的是合併區域的左上角儲存格。若資料填不到正確位置,請先檢查合併儲存格的左上角位置。

十、哪些欄位自動填?哪些欄位保留給現場填?

建議由程式自動填入
  • 年月日
  • 機台,若資料表有資料
  • 製程
  • 製造批號
  • 產品名稱
  • 數量
  • 操作員,視流程決定
建議由現場人員填寫
  • 尺寸 1 / 尺寸 2 / 尺寸 3
  • 壓傷、碰傷、毛邊、變形、假焊
  • 判定 Y/N
  • 自 1 / 自 2 / 自 3 / 自 4
  • 異常狀況
  • 處理結果
  • 單位主管、會簽單位簽核
觀念提醒: 自動化不是把所有欄位都交給系統填,而是先把「從資料表可以取得的基本資料」自動帶入,讓現場人員專注在檢查與判定。

十一、打開 Apps Script 並貼上自動產表程式

操作步驟:開啟 Apps Script

  1. 在 Google Sheet 上方選單點選「擴充功能」。
  2. 選擇「Apps Script」。
  3. 系統會開啟 Apps Script 編輯器。
  4. 將專案命名,例如:SFT 自主檢查表自動化。
  5. 刪除原本預設的 function myFunction() {}
  6. 貼上本講義提供的自動產表程式。
  7. 按下儲存圖示,或使用 Ctrl + S 儲存。
完成標準: 當你在 Apps Script 畫面中看到 generateInspectionSheets 這個函式名稱,並且程式已成功儲存,就可以準備第一次執行。

十二、學員實作:自動產生自主檢查表程式

以下程式碼是本單元的練習範本。你不需要背語法,也不需要從零寫程式。 請先照步驟貼上並執行,再觀察程式如何讀取 Google Sheet、複製模板、填入欄位、回寫連結與更新狀態。

function generateInspectionSheets() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const dataSheet = ss.getSheetByName('資料表');
  const templateSheet = ss.getSheetByName('模板');

  if (!dataSheet) {
    throw new Error('找不到「資料表」頁籤,請確認頁籤名稱是否正確。');
  }

  if (!templateSheet) {
    throw new Error('找不到「模板」頁籤,請確認自主檢查表模板是否已改名為「模板」。');
  }

  const data = dataSheet.getDataRange().getValues();

  // 從第 2 列開始讀,因為第 1 列是欄位名稱
  for (let i = 1; i < data.length; i++) {
    const orderNo = data[i][0];          // A欄:製令編號
    const itemNo = data[i][1];           // B欄:品號
    const productName = data[i][2];      // C欄:品名
    const spec = data[i][3];             // D欄:規格
    const qty = data[i][4];              // E欄:預計產量
    const processSeq = data[i][5];       // F欄:加工順序
    const processName = data[i][6];      // G欄:製程名稱
    const machine = data[i][7];          // H欄:機台
    const operator = data[i][8];         // I欄:操作員
    const generateStatus = data[i][11];  // L欄:產表狀態

    // 如果已產生,跳過,避免重複產表
    if (generateStatus === '已產生') {
      continue;
    }

    // 若必要欄位缺漏,標記錯誤
    if (!orderNo || !productName || !processName) {
      dataSheet.getRange(i + 1, 12).setValue('產生失敗'); // L欄
      dataSheet.getRange(i + 1, 16).setValue('製令編號、品名或製程名稱缺漏'); // P欄
      continue;
    }

    // 複製模板
    const newSheet = templateSheet.copyTo(ss);

    // 建立新工作表名稱:製令_加工順序_製程
    let newSheetName = orderNo + '_' + processSeq + '_' + processName;
    newSheetName = newSheetName.replace(/[\\\/\?\*\[\]]/g, '_').substring(0, 90);
    newSheet.setName(newSheetName);

    // 將資料填入自主檢查表模板
    // 注意:以下儲存格位置請依你的實際模板調整
    newSheet.getRange('N2').setValue(new Date());                    // 日期
    newSheet.getRange('B4').setValue(machine);                       // 機台
    newSheet.getRange('D4').setValue(processName);                   // 製程
    newSheet.getRange('F4').setValue(orderNo);                       // 製造批號
    newSheet.getRange('I4').setValue(productName + ' / ' + spec);    // 產品名稱
    newSheet.getRange('Q4').setValue(qty);                           // 數量
    newSheet.getRange('Q30').setValue(operator);                     // 操作員,可依實際位置調整

    // 回寫檢查表連結
    const sheetUrl = ss.getUrl() + '#gid=' + newSheet.getSheetId();
    dataSheet.getRange(i + 1, 12).setValue('已產生');    // L欄:產表狀態
    dataSheet.getRange(i + 1, 13).setValue(sheetUrl);    // M欄:檢查表連結
    dataSheet.getRange(i + 1, 16).setValue('');          // P欄:清空錯誤訊息
  }
}
操作提醒: 這段程式是假設你的資料欄位順序固定。如果你的欄位位置不同,程式中的 data[i][0]data[i][1] 等位置就需要調整。建議先使用講義提供的欄位順序練習,確認成功後再改成自己的欄位。

十三、第一次執行 Apps Script 與授權

操作步驟:執行自動產表程式

  1. 在 Apps Script 上方的函式下拉選單中,選擇 generateInspectionSheets
  2. 按下「執行」。
  3. 第一次執行時,系統會要求授權。
  4. 點選「審查權限」。
  5. 選擇你的 Google 帳號。
  6. 如果出現「Google 尚未驗證這個應用程式」,請點選「進階」。
  7. 再點選「前往你的專案名稱」。
  8. 確認授權內容後,點選「允許」。
  9. 授權完成後,再次執行 generateInspectionSheets
安全提醒: 只有在你確定程式來源可信時,才允許授權。本課程練習請使用自己建立的 Google Sheet 與測試資料。

十四、自動產表後要檢查什麼?

檢查項目 你要確認什麼 如果不正確怎麼辦
是否產生新工作表 下方頁籤是否出現新的自主檢查表名稱。 檢查「模板」頁籤名稱是否正確。
工作表名稱是否正確 名稱是否包含製令、加工順序、製程名稱。 檢查製令編號、加工順序、製程名稱欄位是否有空白或特殊符號。
欄位是否填入正確位置 機台、製程、製造批號、產品名稱、數量是否帶入正確位置。 檢查程式中的 getRange() 位置。
產表狀態是否更新 資料表中的產表狀態是否從「未產生」改成「已產生」。 檢查程式更新的欄位位置是否正確。
檢查表連結是否回寫 資料表中的「檢查表連結」是否出現連結。 檢查 M 欄是否為檢查表連結欄位。
是否重複產生 已產生的資料再次執行時不應重複產生。 確認程式有檢查產表狀態是否為「已產生」。

十五、M6 核心流程:自動寄送通知信

當自主檢查表產生完成後,不需要再靠人手動通知。Apps Script 可以依照資料表中的信箱、產表狀態與通知狀態,自動寄出通知。

觸發事件 寄給誰 信件內容應包含 目的
自主檢查表產生完成 製造、品管、廠務窗口,測試時先寄給自己 製令編號、產品名稱、製程名稱、檢查表連結。 通知相關人員可開始使用檢查表。
資料缺漏 資訊組或資料提供者 缺少欄位、列號、需補資料內容。 避免錯誤資料進入後續流程。
產生失敗 資訊組 錯誤訊息、發生時間、相關製令。 讓資訊組可以快速排除問題。

十六、通知信不是越多越好:先設計寄信規則

自動寄信的目的,是減少人工追問,不是增加訊息干擾。設計前請先回答以下問題。

什麼情況才寄?

產生完成、資料缺漏、產生失敗、即將延誤、需要主管介入。

寄給誰?

負責人、部門窗口、主管、資訊組。測試階段請先寄給自己。

信件要說什麼?

讓收件人知道發生什麼、要看哪裡、下一步要做什麼。

如何避免重複寄?

資料表需有「通知狀態」與「最後通知時間」欄位。

風險提醒: 第一次測試自動寄信時,不要直接寄給全公司。請先用測試信箱,確認內容、格式、收件人與寄送次數都正確。

十七、用測試信箱寄出第一封通知信

操作步驟:測試寄信程式

  1. 確認資料表中的「通知信箱」已填入你的測試信箱。
  2. 確認「產表狀態」至少有一筆資料是「已產生」。
  3. 確認「檢查表連結」欄位已有連結。
  4. 確認「通知狀態」是「未通知」或空白。
  5. 回到 Apps Script 編輯器。
  6. 貼上本講義提供的寄信程式 sendInspectionNotice
  7. 按下儲存。
  8. 在函式下拉選單選擇 sendInspectionNotice
  9. 按下「執行」。
  10. 回到 Gmail,確認是否收到測試通知信。
  11. 回到 Google Sheet,確認通知狀態是否更新為「已通知」。

十八、學員實作:自動寄送通知信程式

這段程式會讀取「資料表」中的通知信箱、產表狀態、通知狀態與檢查表連結。當檢查表已產生且尚未通知時,系統會寄出 Email,並回寫通知狀態與最後通知時間。

function sendInspectionNotice() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const dataSheet = ss.getSheetByName('資料表');

  if (!dataSheet) {
    throw new Error('找不到「資料表」頁籤,請確認頁籤名稱是否正確。');
  }

  const data = dataSheet.getDataRange().getValues();

  for (let i = 1; i < data.length; i++) {
    const orderNo = data[i][0];          // A欄:製令編號
    const productName = data[i][2];      // C欄:品名
    const spec = data[i][3];             // D欄:規格
    const qty = data[i][4];              // E欄:預計產量
    const processName = data[i][6];      // G欄:製程名稱
    const recipient = data[i][10];       // K欄:通知信箱
    const generateStatus = data[i][11];  // L欄:產表狀態
    const sheetUrl = data[i][12];        // M欄:檢查表連結
    const noticeStatus = data[i][13];    // N欄:通知狀態

    if (generateStatus === '已產生' && noticeStatus !== '已通知') {
      if (!recipient) {
        dataSheet.getRange(i + 1, 14).setValue('通知失敗'); // N欄
        dataSheet.getRange(i + 1, 16).setValue('通知信箱空白'); // P欄
        continue;
      }

      const subject = '【自主檢查表產生完成】製令 ' + orderNo + ' / ' + processName;

      const body =
        '您好:\n\n' +
        '以下自主檢查表已產生完成,請確認。\n\n' +
        '製令編號:' + orderNo + '\n' +
        '產品名稱:' + productName + ' / ' + spec + '\n' +
        '製程名稱:' + processName + '\n' +
        '數量:' + qty + '\n\n' +
        '檢查表連結:\n' +
        sheetUrl + '\n\n' +
        '請依現場實際檢查結果填寫尺寸、外觀、自主檢查、異常狀況與處理結果。\n\n' +
        '若資料有誤,請回覆資訊組或資料維護窗口確認。\n';

      MailApp.sendEmail(recipient, subject, body);

      dataSheet.getRange(i + 1, 14).setValue('已通知');   // N欄:通知狀態
      dataSheet.getRange(i + 1, 15).setValue(new Date()); // O欄:最後通知時間
      dataSheet.getRange(i + 1, 16).setValue('');         // P欄:清空錯誤訊息
    }
  }
}
操作提醒: 請確認資料表中有「通知狀態」與「最後通知時間」欄位。這兩個欄位可以避免同一筆資料被重複通知,也方便你追蹤最後一次通知時間。

十九、程式碼閱讀指南:你只需要先看懂這幾個地方

程式片段 白話意思 你可能需要改哪裡
getSheetByName('資料表') 告訴程式要讀取哪一個工作表。 如果你的頁籤不叫資料表,這裡要改成你的頁籤名稱。
getSheetByName('模板') 告訴程式要複製哪一張模板。 如果你的模板頁籤名稱不同,這裡要調整。
data[i][0] 讀取某一列的第 1 個欄位,也就是 A 欄。 如果欄位順序不同,這裡要調整數字。
getRange('B4') 把資料寫入模板的 B4 儲存格。 如果模板填寫位置不同,這裡要改成新的儲存格位置。
copyTo(ss) 複製模板工作表。 通常不需要改。
MailApp.sendEmail 寄出 Email。 需要確認收件人、主旨與信件內容是否正確。

二十、學員練習 1:設計你的自動產表欄位

請選擇自己部門的一個高耗時任務,思考如果要讓 Apps Script 自動處理,資料表至少需要哪些欄位。

練習任務 1:完成自動產表準備

  1. 確認你的資料表欄位是否完整。
  2. 建立一張「模板」工作表。
  3. 確認模板要填入的格子位置。
  4. 設計產表後要更新的欄位,例如產表狀態、檢查表連結。
  5. 完成下方表格。
我的任務 資料來源 需要產出的表單 / 文件 必要欄位 產出後狀態欄位
例:SFT 轉自主檢查表 SFT 途程單 首件 / 自主檢查記錄表 製令、品名、規格、製程、數量 產表狀態、檢查表連結
         
         

二十一、學員練習 2:設計你的通知信規則

請不要先寫程式,先把通知規則設計清楚。

練習任務 2:完成通知規則設計

  1. 選擇一個需要通知的事件。
  2. 定義觸發條件,例如產表狀態 = 已產生。
  3. 確認通知對象,先以測試信箱為主。
  4. 設計信件主旨。
  5. 列出信件內容一定要包含的欄位。
  6. 設計避免重複通知的方法。
  7. 完成下方表格。
事件 觸發條件 通知對象 信件主旨 信件需包含資訊 如何避免重複通知
例:檢查表完成 產表狀態 = 已產生 製造 / 品管 自主檢查表產生完成 製令、產品、製程、連結 通知狀態 = 已通知
           
           

二十二、常見錯誤與排除方式

錯誤狀況 可能原因 排除方式
執行後沒有產生新工作表 模板頁籤名稱不一致,或產表狀態已經是已產生。 確認頁籤名稱是否為「模板」,並檢查產表狀態。
找不到「模板」頁籤 從 Excel 匯入後仍叫「首件檢查表」。 請將該頁籤重新命名為「模板」。
資料填到錯誤欄位 模板儲存格位置與程式中的 getRange 不一致。 確認 B4、D4、F4、I4、Q4 等對應是否正確。
合併儲存格填不進去 程式沒有寫入合併儲存格的左上角。 確認合併區域的左上角儲存格位置。
產表狀態沒有更新 程式回寫欄位位置不正確。 確認 dataSheet.getRange(i + 1, 12) 是否對應到 L 欄。
檢查表連結沒有回寫 檢查表連結欄位位置不同。 確認 M 欄是否為「檢查表連結」。
寄信失敗 信箱空白、格式錯誤,或尚未授權 MailApp。 檢查通知信箱格式,並重新執行授權流程。
重複寄信 通知狀態沒有成功回寫為已通知。 確認通知狀態欄位位置,並檢查程式回寫欄位。
工作表名稱錯誤或無法建立 工作表名稱包含不允許的特殊符號,或名稱太長。 簡化製令、製程名稱,避免使用特殊符號。
出現權限警告 第一次執行 Apps Script,需要 Google 授權。 確認程式來源可信後,依照授權步驟完成允許。

二十三、導入前檢查清單

在正式讓 Apps Script 自動產表或寄信前,請先檢查以下項目。

檢查項目 確認內容 是否完成
資料欄位固定 欄位名稱、欄位順序、日期格式、狀態選項是否穩定。 □ 是 □ 否
模板格式固定 機台、製程、批號、產品名稱、數量要填入的格子是否固定。 □ 是 □ 否
模板名稱固定 要被複製的頁籤是否已命名為「模板」。 □ 是 □ 否
測試資料準備 是否先使用去識別化或測試製令進行測試。 □ 是 □ 否
通知對象確認 收件人信箱是否正確,是否先用測試信箱驗證。 □ 是 □ 否
避免重複執行 是否設計產表狀態、通知狀態、最後通知時間。 □ 是 □ 否
權限設定 Google Sheet、產生的表單、信件收件人是否符合資料權限。 □ 是 □ 否

二十四、學員完成檢核表

完成 M5-M6 後,請確認你已經做到以下事項。

檢核項目 完成標準 是否完成
資料表完成 資料表有必要欄位,且第 1 列為欄位名稱。 □ 是 □ 否
模板完成 已匯入自主檢查表,並將模板頁籤命名為「模板」。 □ 是 □ 否
模板位置確認 已確認機台、製程、製造批號、產品名稱、數量的填寫位置。 □ 是 □ 否
產表測試完成 執行後已產生至少一張新的自主檢查表。 □ 是 □ 否
狀態更新完成 產表狀態已由「未產生」改為「已產生」。 □ 是 □ 否
連結回寫完成 資料表中的檢查表連結欄位已有連結。 □ 是 □ 否
寄信測試完成 測試信箱已收到通知信。 □ 是 □ 否
通知狀態更新完成 通知狀態已由「未通知」改為「已通知」。 □ 是 □ 否
錯誤排除能力 知道產表失敗或寄信失敗時要先檢查哪幾個地方。 □ 是 □ 否

二十五、本單元重點整理

重點 1 Apps Script 是自動化橋樑

它可以連接 Google Sheet、模板工作表與 Gmail,將重複工作自動化。

重點 2 模板要固定

自主檢查表可以美觀,但要由程式填入的位置必須固定。

重點 3 欄位要穩定

欄位名稱、欄位順序與狀態選項穩定,程式才會穩定。

重點 4 先測試再正式使用

自動產表與寄信都應先用測試資料與測試信箱確認,避免誤寄或重複產生。

下一單元銜接: 接下來可以將資料表中的狀態與統計結果轉成圖表或小看板,讓主管或部門窗口快速掌握進度、延誤與異常。