본문 바로가기

IT

[Apps Script] Google Forms 설문 선택지 코딩으로 바꾸기

반응형

2024.01.14 - [IT] - [Apps Script] Google Forms 모든 설문 전부 필수(Required)로 바꾸기

 

[Apps Script] Google Forms 모든 설문 전부 필수(Required)로 바꾸기

1. 주소 표시줄의 Form ID를 가져온다. 2. 우측 상단의 스크립트 편집기 실행 3. id 필드에 해당 Form ID를 넣고 아래 코드 실행. 해당 코드는 Multiple choice 일 때만 동작함. CHECKBOX 등의 케이스는 디버깅

itchallenger.tistory.com

2024.01.14 - [IT] - [Apps Script] Google Forms 모든 설문 점수 전부 1점으로 바꾸기

 

[Apps Script] Google Forms 모든 설문 점수 전부 1점으로 바꾸기

2024.01.14 - [IT] - [Apps Script] Google Forms 모든 설문 전부 필수(Required)로 바꾸기 [Apps Script] Google Forms 모든 설문 전부 필수(Required)로 바꾸기 1. 주소 표시줄의 Form ID를 가져온다. 2. 우측 상단의 스크립트

itchallenger.tistory.com

Apps Script

Goole Forms로 자격증 문제 덤프를 만드는 중이다.

Form에 복붙해서 만드는 중인데, 정답 표시 특수문자가 같이 복붙되서, 코딩으로 해당 특수문자를 제거하기로 했다.  

 

그리고 checkbox로 선택해야 다중 선택이 가능하다...!

multiplechoice는 다중 선택이 불가능. 답은 여러개 가능

1. 주소 표시줄의 Form ID를 가져온다.

사본 만들면 아이디가 바뀌는 것을 명심하자.

주소표시줄의 form id 가져오기


2. 우측 상단의 스크립트 편집기 실행

스크립트 편집기 실행


3. 변수에 값 세팅

  1. id 변수에 해당 Form ID를 넣는다.
  2. Type별로 캐스팅을 위한 분기를 만든다.
    • 이건 프로그래밍 적으로 변경할 수 없다. 처음에 코드에서 해당 타입으로 만들던지, 폼 파일에서 직접 해당 타입으로 만들거나 바꾸거나 해야한다...
  3. regexp에 원하는 정규식을 집어넣어 처리한다.
    • replaceText 함수 참조.

참고로 replace는 맨 처음 나타나는 하나만 바꿔주기 떄문에... 여러개 있는 경우 다른 정규식 API를 사용해야 한다.

해당 방법에 대한 내용은 정규식에 관한 내용이므로 해당 게시물에선 다루지 않는다.  

function myFunction() {
  const id = '15Vozf-b9pgS5wv1nU0p4Unnm9tQizFEy45PQWEWfVOM';
  const form = FormApp.openById(id);
  const items = form.getItems();
  items.forEach((item, index) => {
    Logger.log(`Q${index + 1}) : ${item.getType()}`);
    if (`${item.getType()}`.includes('CHECKBOX')) {
      const cbx = item.asCheckboxItem();
      cbx.setPoints(1);
      cbx.setRequired(true);
      replaceText(cbx);
      logItem(cbx);
      return;
    }
  });
}
const regexp = /(▣|□|●|○)/g;
const logItem = item => console.log(item.getChoices().map(c => c.getValue()));
const replaceText = item => item.setChoices(
  item.getChoices().map((c, i) =>
    item.createChoice(c.getValue().replace(regexp, ''), !!c.isCorrectAnswer())
  )
);

4. 실행 버튼 클릭

이미지 코드는 본인 프로젝트를 위한 것이므로 위에서 제공한 코드와 다를 수 있습니다.

앱스크립트 실행

기타 사항 > 댓글로 질문

Rererence

Modify Form Content with Google Apps Script #FormUpdate (youtube.com)

 

반응형