網頁

2024年11月8日 星期五

用AI寫個程式來為 Google 表單設置人數限制並自動關閉表單

最近在臉書上看到,有好友提到常用的 Google 表單外掛工具已下架了,因此無法再直接設置表單人數限制的功能。為了解決這個問題,我試著利用 AI 來寫一個自動關閉 Google 表單的程式。這段程式碼會檢查回應人數,並在回應數量達到指定人數時,自動關閉表單。以下是詳細步驟與操作說明。

步驟 1:開啟 Google Apps Script 編輯器

1.打開您需要設置人數限制的 Google 表單。

2.點擊右上方的「更多選項」(外觀為三個點)>「指令碼編輯器」以打開 Apps Script 編輯器。

步驟 2:新增程式碼

在 Apps Script 編輯器中,將預設的內容刪除,然後貼上以下程式碼:


function onOpen() {
const ui = FormApp.getUi();
ui.createMenu('自動關閉設定')
.addItem('設定人數上限', 'showLimitDialog')
.addToUi();

}

function showLimitDialog() {
const ui = FormApp.getUi();
const limitResponse = ui.prompt(
'人數限制',
'請輸入人數上限:',
ui.ButtonSet.OK_CANCEL

);

if (limitResponse.getSelectedButton() == ui.Button.OK) {
const limit = parseInt(limitResponse.getResponseText().trim(), 10);
if (!isNaN(limit)) {
setLimitTrigger(limit);
ui.alert(`已設置人數上限為 ${limit},表單將在達到上限時自動關閉。`);
} else {
ui.alert('輸入無效。請輸入有效的數字。');
}

}
}

function setLimitTrigger(limit) {
const form = FormApp.getActiveForm();

// 刪除現有的觸發器,以避免重複
ScriptApp.getProjectTriggers().forEach(trigger => {
if (trigger.getHandlerFunction() === 'closeFormWhenLimitReached') {
ScriptApp.deleteTrigger(trigger);
}

});

// 設置「回應提交」觸發器以立即檢查條件
ScriptApp.newTrigger('closeFormWhenLimitReached')
.forForm(form)
.onFormSubmit()
.create();


// 將設定存入 Script Properties
PropertiesService.getScriptProperties().setProperties({
formId: form.getId(),
responseLimit: limit.toString()

});

// 立即檢查一次,確認條件是否已經達成
closeFormWhenLimitReached();
}

function closeFormWhenLimitReached() {
const formId = PropertiesService.getScriptProperties().getProperty('formId');
const responseLimit = parseInt(PropertiesService.getScriptProperties().getProperty('responseLimit'), 10);

if (!formId) {
Logger.log('未找到表單 ID,無法檢查條件');
return;

}

const form = FormApp.openById(formId);
const responses = form.getResponses().length;

// 檢查回應數是否達到上限
if (responses >= responseLimit) {
form.setAcceptingResponses(false);
Logger.log(`表單已達到回應上限 ${responseLimit},已自動關閉`);

} else {
Logger.log(`目前回應數:${responses},尚未達到上限 ${responseLimit}`);

}
}

步驟 3:儲存與授權

1.儲存專案,可以將此專案命名為「表單自動關閉」。

2.第一次執行程式時,系統會提示您進行授權。點擊「檢查權限」,選擇您的 Google 帳戶,並點擊「允許」以授權程式執行。

步驟 4:啟用選單功能

1.在 Apps Script 編輯器中,選擇 onOpen 函數,然後點擊上方的執行按鈕。這樣會在 Google 表單的界面中新增「自動關閉設定」選單。

2.返回 Google 表單頁面並刷新頁面,即可在右上角看到「自動關閉設定」選單。

步驟 5:設定人數上限

1.點擊「自動關閉設定」選單,選擇「設定人數上限」。

2.系統將彈出一個對話框,讓您輸入人數上限。例如,您可以輸入「50」作為上限。

3.點擊「確定」,系統會提示「已設置人數上限為 50,表單將在達到上限時自動關閉」。

測試建議

若要確認程式是否正常運作,可以設置一個較小的數字作為人數上限(例如 2 或 3),並提交幾次測試回應以觀察自動關閉功能是否生效。

結語

利用 Google Apps Script 為 Google 表單設置人數限制,可以有效地管理報名人數並防止超額報名。這對於活動報名、問卷調查等情境尤其適用。透過本文的指引,您可以輕鬆實現這一功能,為您的表單提供更好的控制和管理。希望這篇教學能幫助您解決 Google 表單人數限制的需求!

操作示範影片

沒有留言:

張貼留言