반응형
2024.01.14 - [IT] - [Apps Script] Google Forms 모든 설문 전부 필수(Required)로 바꾸기
2024.01.14 - [IT] - [Apps Script] Google Forms 모든 설문 점수 전부 1점으로 바꾸기
Goole Forms로 자격증 문제 덤프를 만드는 중이다.
Form에 복붙해서 만드는 중인데, 정답 표시 특수문자가 같이 복붙되서, 코딩으로 해당 특수문자를 제거하기로 했다.
그리고 checkbox로 선택해야 다중 선택이 가능하다...!
multiplechoice는 다중 선택이 불가능. 답은 여러개 가능
1. 주소 표시줄의 Form ID를 가져온다.
사본 만들면 아이디가 바뀌는 것을 명심하자.
2. 우측 상단의 스크립트 편집기 실행
3. 변수에 값 세팅
- id 변수에 해당 Form ID를 넣는다.
- Type별로 캐스팅을 위한 분기를 만든다.
- 이건 프로그래밍 적으로 변경할 수 없다. 처음에 코드에서 해당 타입으로 만들던지, 폼 파일에서 직접 해당 타입으로 만들거나 바꾸거나 해야한다...
- 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)
반응형
'IT' 카테고리의 다른 글
[ABAP] SPECIFY REFERENCE TABLE AND REFERENCE FIELD 오류 해결 (0) | 2024.01.22 |
---|---|
[Career] Abap Certified Development Specialist - ABAP for SAP HANA 2.0(E_HANAAW_18) 아밥 써티 취득 후기 (12) | 2024.01.18 |
[Apps Script] Google Forms 모든 설문 점수 전부 1점으로 바꾸기 (0) | 2024.01.14 |
[Apps Script] Google Forms 모든 설문 전부 필수(Required)로 바꾸기 (0) | 2024.01.14 |
[보안] 단방향, 양방향 암호화와 대칭키, 비대칭키 (0) | 2023.12.04 |