테스트를 위해 직접 실행을 눌러보기도 했는데요 실행로그엔 실행이 완료되었다고 뜨는데 설문폼은 변경되지 않습니다... ss.getSheetByName("시트이름"); const GOOGLE_FORM_ID = "폼 고유아이디"; 이 두 부분 외 수정해야 할 항목이 있을까요?
코드가 보이실까요? 응답 시트에서 App Script를 열어서 code.gs에 해당 코드를 입력하고, 실행 함수를 getDataFromGoogleSheets()로 잡으시면 됩니다. 트리거의 경우 저는 스프레드시트에서 - 변경 시, 스프레드시트에서 - 양식 제출 시 둘다 잡았습니다.
const GOOGLE_FORM_ID = "17q16e7fPtmNIui9sag7wZXzFh14OBvBrKWogNYMgVz8"; 관련 질문이 있습니다. 여기서 "17~"로 시작하는 부분은 본인의 구글 아이디를 작성하는걸까요? 제가 보내주신 코드로도 해보고, 저 부분을 제 구글 아이디로도 변경해서 저장하고, 트리거를 추가하는데요. 계속 해당 계정의 안전성 문제로 할 수 없다고 메세지가 나와서요...
안녕하세요 아래 질문에 답변하신 소스를 시트에 넣고 트리거도 적용했는데 연동이 되지 않습니다 ㅠㅠ 혹시 시트나 폼, 스프레드 시트 등에 따로 지정해야 하는 이름이 있다거나 하는 변수가 있을까요? 🥲
안녕하세요~ 구글폼 고유아이디를 바꾸셨을까요??
@@jingiru 넵 ㅠㅠ 수정에서 보이는 d와 edit 사이의 아이디로 변경하여 적용하였습니다
테스트를 위해 직접 실행을 눌러보기도 했는데요 실행로그엔 실행이 완료되었다고 뜨는데 설문폼은 변경되지 않습니다...
ss.getSheetByName("시트이름");
const GOOGLE_FORM_ID = "폼 고유아이디";
이 두 부분 외 수정해야 할 항목이 있을까요?
동일한 설문지 10개가 있는데
질문을 자동으로 수정할수 있을까요
음~ 구체적으로 어떤 상황인 것일까요?
만약, 설문지 파일을 10개 만든 상황이시라면 그에 따라 스프레드시트도 10개 만들어주셔야 할 것 같아요~
응답 600개를 받은 이후 구글 폼에서 를 눌러 스프레드시트로 넘어간 경우, 여기에서 응답 중 40개를 삭제하면 나머지 560개의 응답을 바탕으로 구글 폼에서 그래프화 되어 결과나 나타나나요?
응답 스프레드시트에서 삭제된 데이터는 구글 폼에 반영되지 않습니다
반대로 폼에서 삭제할 경우 응답 스프레드시트에 데이터는 삭제되구요!
안녕하세요. 혹시 이 소스를 공유 받을 수 있을까요?
function getDataFromGoogleSheets() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName("sync");
const [header, ...data] = sheet.getDataRange().getDisplayValues();
const choices = {}
header.forEach(function(title, index) {
choices[title] = data.map(row => row[index]).filter(e => e !== "");
});
return choices;
}
function populateGoogleForms() {
const GOOGLE_FORM_ID = "구글폼 고유 아이디";
const googleForm = FormApp.openById(GOOGLE_FORM_ID);
const items = googleForm.getItems();
const choices = getDataFromGoogleSheets();
items.forEach(function(item) {
const itemTitle = item.getTitle();
if (itemTitle in choices) {
const itemType = item.getType();
switch (itemType) {
case FormApp.ItemType.CHECKBOX:
item.asCheckboxItem().setChoiceValues(choices[itemTitle]);
break;
case FormApp.ItemType.MULTIPLE_CHOICE:
item.asMultipleChoiceItem().setChoiceValues(choices[itemTitle]);
break;
default:
Logger.log("Ignore question", itemTitle);
}
}
});
}
코드가 보이실까요?
응답 시트에서 App Script를 열어서 code.gs에 해당 코드를 입력하고,
실행 함수를 getDataFromGoogleSheets()로 잡으시면 됩니다.
트리거의 경우 저는 스프레드시트에서 - 변경 시, 스프레드시트에서 - 양식 제출 시 둘다 잡았습니다.
@@jingiru 감사합니다. 한번 해볼께요 ^^ 시험문제 만드는데 상당히 도움이 될 것 같습니다 ㅎㅎ
const GOOGLE_FORM_ID = "17q16e7fPtmNIui9sag7wZXzFh14OBvBrKWogNYMgVz8";
관련 질문이 있습니다.
여기서 "17~"로 시작하는 부분은 본인의 구글 아이디를 작성하는걸까요?
제가 보내주신 코드로도 해보고, 저 부분을 제 구글 아이디로도 변경해서 저장하고, 트리거를 추가하는데요.
계속 해당 계정의 안전성 문제로 할 수 없다고 메세지가 나와서요...
@@joontaenoh9000 아~~ 네 경황이 없어서 그 부분 빠뜨렸네요!
구글 폼을 생성하면 나오는 주소에서 d/ 와 /edit 사이에 있는 구글폼 고유 아이디를 넣어 주시면 됩니다!