วันพุธที่ 3 พฤษภาคม พ.ศ. 2560

How to set auto update drop down list on google form by App Script (วิธีทำ Auto update ดรอปดาวน์ลิส บน Google Form ด้วย App Script)

สวัสดี

ไม่ต้องเกริ่นกันแล้ว เริ่มกันเลยดีกว่า
จัดแบบง่ายๆ ทำเป็นไวๆ ครับ

1. สร้าง Google Form (Blank) ก่อน



2. จากนั้นจะเจอหน้าจอสร้าง Form ให้ทำการจด (Copy) ID ของ Form ที่เราสร้างขึ้นมาเก็บเอาไว้ก่อน (ID แต่ละไฟล์ไม่เหมือนกันนะ)


3. คลิกที่วงกลมสีแดง เพื่อเปลี่ยนรูปแบบของ Item Content เป็น "Dropdown"

5. คลิกขวาตรงบริเวณ Drop Down เลือก Inspect (Chrome Browser)

6. ค้นหา Tag ที่ชื่อว่า "Item-data-id" แล้วจด (Copy) เลขไว้

7. ไปเปิด Sheet ที่ผูกกับ Google Form ขึ้นมา โดยคลิกที่ Responses แล้วคลิกปุ่มรูป Sheet


8. ตั้งชื่อไฟล์สำหรับเซฟข้อมูล แล้วกด Create / Google จะทำการเปิด App Sheets ขึ้นมา

9. คลิก "+" ด้านล่างซ้าย เพื่อทำการเพิ่ม Sheet ใหม่ ชื่อ "List"  พร้อมใส่ค่าที่ต้องการให้ออกบน Dropdown ลงไปใน Column A


10. คลิกที่ Tool -> Script editor..

11. ให้ทำการวาง โค๊ดนี้ แทนที่ My function 


var FORM_ID = "ใส่ ID ที่ Copy ในข้อ 2";
var ITEM_ID = "ใส่ item-data-id ในข้อ 6";
var VALUES_SHEET_NAME = "List";

function updateDropDown(){

  var form = FormApp.openById(FORM_ID);
  
  var dropdown = form.getItemById(ITEM_ID).asListItem();

  var ss = SpreadsheetApp.getActive();
  var valueSheet = ss.getSheetByName(VALUES_SHEET_NAME);
  
  var valueCol = valueSheet.getRange("A2:A").getValues();
  var lastRow = valueCol.filter(String).length;
  
  var animals = [];
  
  for(var i = 0; i < lastRow; i++)    
      animals[i] = valueCol[i][0];

  dropdown.setChoiceValues(animals);
}

12. ทำการ Save Script โดยไปที่ File -> Save แล้วตั้งชื่อ

13. คลิกที่ปุ่มรูปนาฬิกา -> คลิก "No trigger set up. Click here to add one now"

14. Set Trigger ให้รันทุกๆ 1 นาที และทุกๆ ครั้งที่มีการเปลี่ยนแปลงบน Sheet ตามภาพ ด้านล่าง แล้วกดปุ่ม Save

15. กลับมาที่ Google Form แล้วคลิกปุ่ม Preview มุมบนขวา เพื่อทดสอบ

16. เสร็จ