본문 바로가기

구글 설문지 시간 조건 자동 종료 예제 코드

사실대로 2025. 9. 12.
반응형

구글 설문지 자동 종료는 시험, 이벤트 신청, 설문 응답 마감 관리에 꼭 필요한 기능이에요.

기본적으로 구글 설문지에는 ‘자동 종료’ 옵션이 없기 때문에, Google Apps Script를 활용해 직접 설정해야 합니다.

이 글에서는 초보자도 쉽게 따라 할 수 있는 예제 코드와 설정법을 정리했어요.

구글 설문지 시간 조건 자동 종료 예제 코드

이 글에서 배울 수 있는 것

  • 설정한 시간에 맞춰 설문 자동 종료하기
  • 스프레드시트와 연동해 종료시간 관리하기
  • 응답 수 제한 + 시간 조건을 동시에 설정하기

구글 설문지 자동 종료가 필요한 순간

시험 시간 관리

학교나 기업 시험에서 시작·종료 시간이 명확해야 할 때, 자동 종료 기능은 필수예요. 수동으로 닫는 실수를 방지할 수 있죠.

이벤트 신청 마감

선착순 모집에서 신청 마감을 놓치면 혼란이 생겨요. 자동 종료를 걸어두면 정확한 시간에 딱 맞춰 접수가 마감됩니다.

설문 응답 제한

연구조사나 마케팅에서 일정 응답 수 이상 받지 않으려면, 응답 수 제한 기능과 함께 쓰는 게 좋아요.

 

무료로 워드·엑셀 열 수 있는 클라우드 툴

 

무료로 워드·엑셀 열 수 있는 클라우드 툴

워드·엑셀 무료 사용을 원하시는 분들 정말 많으시죠. 특히 학생, 프리랜서, 직장인이라면 간단히 문서 작성이나 표 계산만 필요한데 비싼 오피스를 구독하기 부담스럽거든요.다행히 2025년 현

apt.sunrisefs.co.kr

자동 종료 기본 코드

시간 기준 종료 예제

특정 시간 이후 자동 종료하려면 아래 코드를 사용하세요.


// 종료할 폼 ID 입력
const FORM_ID = 'YOUR_FORM_ID_HERE';

// 종료 시각 설정 (예: 2025년 9월 10일 오후 3시)
const END_TIME = new Date(2025, 8, 10, 15, 0, 0);

function checkAndCloseForm() {
  const form = FormApp.openById(FORM_ID);
  if (!form.isAcceptingResponses()) return;

  const now = new Date();
  if (now >= END_TIME) {
    form.setAcceptingResponses(false);
    form.setCustomClosedFormMessage('응답 기간이 종료되었습니다.');
  }
}

여기에 createMinuteTrigger()를 추가해 1분마다 실행되도록 설정하면 돼요.

스프레드시트로 종료시간 관리

Config 시트에 시간 입력

연결된 스프레드시트 Config!A2 셀에 2025-09-10 15:00 같은 형식으로 종료시간을 기록합니다.

코드 예제


const FORM_ID = 'YOUR_FORM_ID';
const SHEET_ID = 'YOUR_SHEET_ID';

function checkAndCloseFormFromSheet() {
  const sheet = SpreadsheetApp.openById(SHEET_ID);
  const endTime = sheet.getRange('Config!A2').getValue();
  const now = new Date();

  const form = FormApp.openById(FORM_ID);
  if (now >= endTime && form.isAcceptingResponses()) {
    form.setAcceptingResponses(false);
    form.setCustomClosedFormMessage('응답이 마감되었습니다.');
  }
}

이 방식은 운영자가 구글 시트에서 종료시간만 바꾸면 돼서 편리해요.

방식 장점 단점
하드코드 빠르고 단순 코드 수정 필요
스프레드시트 운영자가 시간만 변경 가능 시트 관리 필요

응답 수 + 시간 조건 복합 종료

예제 코드


const MAX_RESPONSES = 200;

function checkCloseByTimeOrCount() {
  const form = FormApp.openById(FORM_ID);
  if (!form.isAcceptingResponses()) return;

  const now = new Date();
  if (now >= END_TIME || form.getResponses().length >= MAX_RESPONSES) {
    form.setAcceptingResponses(false);
    form.setCustomClosedFormMessage('응답이 마감되었습니다.');
  }
}

이렇게 하면 시간과 응답 수 중 하나라도 조건을 만족하면 설문이 종료돼요.

CSS로 요소 숨기는 방법과 디버깅 팁

 

CSS로 요소 숨기는 방법과 디버깅 팁

CSS 요소 숨기기는 웹 개발에서 가장 많이 쓰이는 기초 테크닉 중 하나예요.특정 버튼, 광고, 레이아웃 영역을 임시로 가리거나, 반응형 웹에서 모바일·PC 화면에 따라 다르게 표시할 때 꼭 필요

apt.sunrisefs.co.kr

자주 묻는 질문 FAQ

Q. 트리거는 어디서 설정하나요?

Apps Script 편집기 → 왼쪽 ‘트리거’ 메뉴에서 새로 추가하면 돼요.

Q. 종료 메시지를 바꾸고 싶어요.

setCustomClosedFormMessage() 안에 원하는 문구를 넣으면 됩니다.

Q. 하루 한 번만 체크하고 싶을 땐?

everyDays(1) 같은 주기로 설정하면 돼요.

Q. 여러 개 폼에 동시에 적용할 수 있나요?

폼 ID 배열을 만들어 forEach문으로 돌리면 여러 설문을 한 번에 관리할 수 있습니다.

Q. 테스트는 어떻게 하나요?

종료시간을 현재 시각보다 2~3분 뒤로 설정하고 트리거를 1분 주기로 돌려보면 됩니다.

댓글