สร้างไฟล์ Google Sheets ใหม่
- เปิด sheets.new (หรือ Google Drive › ใหม่ › Google ชีต) ด้วยบัญชีของผู้ดูแลบ้าน
- ตั้งชื่อไฟล์ที่มุมซ้ายบน เช่น บัญชีครัวเรือน — บ้านของเรา
เคล็ดลับ: ไฟล์นี้คือ "ฐานข้อมูล" ของบ้าน ห้ามลบ ย้ายโฟลเดอร์ใน Drive ได้ตามสบาย ไม่จำเป็นต้องแชร์ไฟล์ให้คนในบ้าน — ทุกคนใช้ผ่านลิงก์เว็บแอป
เปิด Apps Script จากไฟล์ชีต
- ในไฟล์ชีต กดเมนู ส่วนขยาย › Apps Script (Extensions › Apps Script)
- แท็บใหม่จะเปิดหน้าแก้ไขโค้ด ซึ่งมีไฟล์
Code.gsอยู่ 1 ไฟล์ - ตั้งชื่อโปรเจกต์ที่มุมซ้ายบน เช่น SheetDee Family Budget — ชื่อนี้จะแสดงในหน้าขอสิทธิ์
สำคัญ: ต้องเปิด Apps Script จากเมนูของไฟล์ชีต เท่านั้น เพื่อให้โค้ดผูกกับไฟล์นี้
วางไฟล์ทั้ง 3 ไฟล์
3.1 วาง Code.gs
- เปิดไฟล์
Code.gsด้วย Notepad / VS Code แล้วกด Ctrl+A › Ctrl+C - ใน Apps Script คลิกไฟล์
Code.gsกด Ctrl+A แล้ว Ctrl+V วางทับทั้งหมด
3.2 สร้างไฟล์ Index.html
- กดปุ่ม + ข้างคำว่า "ไฟล์" › เลือก HTML
- พิมพ์ชื่อ
Index(ตัว I ใหญ่ ไม่ต้องพิมพ์ .html) แล้วกด Enter - ลบโค้ดตัวอย่างในไฟล์ใหม่ แล้ววางเนื้อหาทั้งหมดจาก
Index.html
3.3 วาง appsscript.json
- กดไอคอนเฟือง การตั้งค่าโปรเจกต์ ทางซ้าย › ติ๊ก แสดงไฟล์ Manifest "appsscript.json" ในเครื่องมือแก้ไข
- กลับไปที่ เครื่องมือแก้ไข (ไอคอน <>) เปิด
appsscript.jsonแล้ววางเนื้อหาจากไฟล์ทับทั้งหมด - กด Ctrl+S เพื่อบันทึก
ตรวจสอบ: ด้านซ้ายต้องมี 3 ไฟล์ appsscript.json · Code.gs · Index.html
รันฟังก์ชัน setup และอนุญาตสิทธิ์
- ที่แถบเครื่องมือด้านบน เลือกฟังก์ชัน
setupแล้วกด ▶ เรียกใช้ (Run) - ครั้งแรก Google จะขอสิทธิ์ กด ตรวจสอบสิทธิ์ (Review permissions)

- เลือกบัญชี Google ของคุณ (บัญชีเดียวกับเจ้าของไฟล์ชีต)
- หน้า "Google ยังไม่ได้ยืนยันแอปนี้" เป็นเรื่องปกติของสคริปต์ที่ติดตั้งเอง กด ขั้นสูง แล้วกด ไปที่ SheetDee Family Budget (ไม่ปลอดภัย)

- ตรวจรายการสิทธิ์ (ดู สิทธิ์ที่ขอ) ติ๊ก เลือกทั้งหมด แล้วกด ดำเนินการต่อ / อนุญาต
- รอจนบันทึกการดำเนินการขึ้นว่า การดำเนินการเสร็จสมบูรณ์ — ระบบสร้างชีต 10 ชีต ทริกเกอร์รายวัน และข้อมูลตัวอย่างครอบครัว 4 คนให้ลองเล่น
ปลอดภัยไหม? โค้ดทั้งหมดอยู่ในโปรเจกต์ของคุณ อ่านได้ทุกบรรทัด ทำงานด้วยบัญชีของคุณเอง ไม่ส่งข้อมูลการเงินไปเซิร์ฟเวอร์อื่น
เผยแพร่เป็นเว็บแอป
- กดปุ่มสีน้ำเงิน การทำให้ใช้งานได้ (Deploy) มุมขวาบน › การทำให้ใช้งานได้รายการใหม่

- กดไอคอนเฟืองข้าง "เลือกประเภท" แล้วเลือก เว็บแอป

- ตั้งค่า: ดำเนินการในฐานะ = ฉัน และ ผู้มีสิทธิ์เข้าถึง = ทุกคน แล้วกด การทำให้ใช้งานได้

ทำไมเลือก "ทุกคน": คนในบ้าน (โดยเฉพาะเด็ก) เปิดบนมือถือได้ทันทีโดยไม่ต้องมีบัญชี Google — ระบบล็อกด้วยชื่อผู้ใช้ + PIN ของแต่ละคนอยู่แล้ว คนนอกที่ได้ลิงก์ไปก็เข้าไม่ได้
- คัดลอก URL ของเว็บแอป (ลงท้ายด้วย
/exec) แล้วกด เสร็จสิ้น — ส่งลิงก์นี้ให้ทุกคนในบ้าน

ข้อมูลเข้าใช้งานครั้งแรก
| ชื่อผู้ใช้ | PIN เริ่มต้น | บทบาท | หมายเหตุ |
|---|---|---|---|
admin | 1234 | ผู้ดูแล | ระบบบังคับเปลี่ยน PIN ทันที เมื่อเข้าครั้งแรก |
- เปิด URL เว็บแอป ใส่ชื่อผู้ใช้ admin และ PIN 1234
- ระบบเปิดหน้าต่าง ตั้ง PIN ใหม่ก่อนเริ่มใช้งาน (ปิดไม่ได้จนกว่าจะเปลี่ยน) ใส่ PIN เดิม 1234 และ PIN ใหม่ตัวเลข 4–8 หลัก — ห้ามใช้ 1234 หรือเลขซ้ำทั้งหมดเช่น 0000
- ไปที่ ตั้งค่า & สมาชิก แตะชื่อตัวเองเพื่อแก้ชื่อที่แสดง (เช่น "พ่อวิชัย") อีโมจิ สี และใส่อีเมลไว้รับการเตือนบิล


บัญชีตัวอย่าง (มาพร้อมข้อมูลตัวอย่าง)
| ชื่อผู้ใช้ | PIN เริ่มต้น | ใคร | บทบาท |
|---|---|---|---|
malee | 1111 | แม่มาลี | ผู้ดูแล |
baitoey | 2222 | ใบเตย | เด็ก |
poom | 3333 | ภูมิ | เด็ก |
ลองเข้าด้วยบัญชีเด็ก (เช่น poom) เพื่อดูว่าเด็กเห็นเฉพาะกระปุกของตัวเอง — บัญชีตัวอย่างทุกบัญชีต้องเปลี่ยน PIN เมื่อเข้าครั้งแรก และจะถูกลบเมื่อกด "ล้างข้อมูลตัวอย่าง"
วิธีเพิ่มสมาชิกในบ้าน

- เข้าสู่ระบบด้วยบัญชีผู้ดูแล › เมนู ตั้งค่า & สมาชิก › เพิ่มสมาชิก
- ใส่ ชื่อที่แสดง และ ชื่อผู้ใช้ (a-z 0-9 . _ - อย่างน้อย 3 ตัว เช่น
mae,nong.ploy) - เลือก บทบาท: ผู้ดูแล (พ่อ/แม่) · สมาชิก · เด็ก
- ตั้ง PIN เริ่มต้น 4–8 หลัก เลือกอีโมจิและสี
- ผู้ใหญ่: เลือกว่า ร่วมหารค่าใช้จ่าย หรือไม่ และสัดส่วน % · เด็ก: ใส่ ค่าขนมต่อสัปดาห์ และวันที่ให้
- กด บันทึก แล้วบอก ลิงก์เว็บแอป + ชื่อผู้ใช้ + PIN เริ่มต้น ให้เจ้าตัว เขาจะต้องตั้ง PIN ใหม่เองเมื่อเข้าครั้งแรก
ระบบสร้างกระเป๋าส่วนตัว (ผู้ใหญ่) หรือกระปุก (เด็ก) ให้อัตโนมัติ ใส่ "เงินตั้งต้น" ได้ตอนเพิ่ม
เริ่มใช้จริง
- เปิดไฟล์ชีต › เมนู 🏠 Family Budget › 🧹 ล้างข้อมูลตัวอย่าง — ลบรายการเงิน บิล เป้าหมาย รายการซื้อของ และสมาชิกตัวอย่าง (เก็บบัญชี admin หมวดหมู่และงบไว้)
- หน้า ตั้งค่า: ชื่อบ้าน วิธีหาร (เท่ากัน/ตามสัดส่วน) เป้าสมทบกองกลาง การอนุมัติรายการของเด็ก อีเมลเตือนบิล และเวลาส่ง
- หน้า ตั้งค่า › กระเป๋าเงิน: ใส่ ยอดยกมา ของกองกลางและกระเป๋าแต่ละคนเป็นเงินที่มีอยู่จริงวันนี้
- หน้า บิลประจำ: เพิ่มบิล ไฟ น้ำ เน็ต มือถือ ผ่อนบ้าน ค่าเทอม ประกัน · หน้า งบประมาณ: ตั้งงบรายเดือนตามหมวด
- ให้ทุกคนเปิดลิงก์บนมือถือ แล้ว เพิ่มไปยังหน้าจอหลัก เพื่อเปิดเหมือนแอป

วิธีรีเซ็ต PIN
สมาชิก / เด็ก ลืม PIN
- ผู้ดูแลเข้า ตั้งค่า & สมาชิก › แตะชื่อสมาชิกคนนั้น
- ใส่ PIN ใหม่ในช่อง ตั้ง PIN ใหม่ › บันทึก — เครื่องเดิมของเขาออกจากระบบทันที และเขาต้องเปลี่ยน PIN เองเมื่อเข้าครั้งถัดไป
ผู้ดูแล (admin) ลืม PIN
- เปิด ไฟล์ Google Sheets ของระบบ (ด้วยบัญชีเจ้าของไฟล์)
- เมนู 🏠 Family Budget › 🔑 รีเซ็ต PIN ผู้ดูแล (admin) เป็น 1234 — หรือเปิด Apps Script เลือกฟังก์ชัน
resetAdminPin› เรียกใช้ - เข้าสู่ระบบด้วย
admin/1234แล้วตั้ง PIN ใหม่ (ระบบบังคับ)
ถ้ามีผู้ดูแลหลายคน (เช่น แม่ใช้บัญชี malee) ผู้ดูแลอีกคนรีเซ็ต PIN ให้กันได้จากหน้าตั้งค่าโดยไม่ต้องเปิดไฟล์ชีต · ฟังก์ชันรีเซ็ตเรียกได้เฉพาะเจ้าของไฟล์จาก Apps Script/เมนูในชีตเท่านั้น ผู้เข้าชมเว็บแอปเรียกไม่ได้
อัปเดตเป็นเวอร์ชันใหม่ (ลิงก์เดิม)
- วาง
Code.gsและIndex.htmlเวอร์ชันใหม่ทับของเดิม แล้วบันทึก (ข้อมูลในชีตไม่หาย) - รันฟังก์ชัน
setupอีกครั้ง (เพิ่มคอลัมน์ใหม่ที่ขาด ไม่ลบข้อมูล ไม่สร้างข้อมูลตัวอย่างซ้ำ) - กด การทำให้ใช้งานได้ › จัดการการทำให้ใช้งานได้ › ไอคอนดินสอ ✏️ › เวอร์ชัน เวอร์ชันใหม่ › การทำให้ใช้งานได้
อย่ากด "การทำให้ใช้งานได้รายการใหม่" ซ้ำ เพราะจะได้ลิงก์ใหม่ ทุกคนในบ้านต้องเปลี่ยนลิงก์
แก้ปัญหาที่พบบ่อย
ค่าขนมไม่เข้า / ไม่มีอีเมลเตือนบิล
ใน Apps Script › เมนูซ้าย ทริกเกอร์ ต้องมี dailyJob แบบรายวัน ถ้าไม่มีให้รัน setup อีกครั้ง · ตรวจหน้าตั้งค่าว่าเปิดการเตือนและมีอีเมลผู้รับ แล้วกด "ทดสอบส่งอีเมล"
เปิดลิงก์แล้วขึ้น "ไม่พบไฟล์ HTML ชื่อ Index"
ชื่อไฟล์ HTML ต้องเป็น Index ตรงตัวพิมพ์ เปลี่ยนชื่อแล้ว อัปเดตเวอร์ชัน
ขึ้น "ไม่พบชีต … กรุณารันฟังก์ชัน setup"
มีคนลบหรือเปลี่ยนชื่อชีต ให้รัน setup อีกครั้ง ระบบจะสร้างชีตที่หายไปให้
แก้โค้ดแล้วหน้าเว็บไม่เปลี่ยน
ลิงก์ /exec ใช้เวอร์ชันที่ deploy ไว้ ต้อง อัปเดตเวอร์ชัน ทุกครั้ง
เปิดบนมือถือแล้วขึ้นหน้าล็อกอิน Google
ตรวจว่าตั้ง ผู้มีสิทธิ์เข้าถึง = ทุกคน (ขั้นตอนที่ 5) แล้วอัปเดตเวอร์ชัน
ขึ้น "ใส่ PIN ผิดหลายครั้ง กรุณารอ 5 นาที"
ระบบพักบัญชีนั้น 5 นาทีเพื่อกันการเดา PIN รอแล้วลองใหม่ หรือให้ผู้ดูแลรีเซ็ต PIN
สิทธิ์ที่ระบบขอ และเหตุผล
| สิทธิ์ | ใช้ทำอะไร |
|---|---|
| ดูและแก้ไขไฟล์ Google Sheets | อ่าน/เขียนข้อมูลในไฟล์ชีตของระบบ (ไฟล์ที่ติดตั้งเท่านั้น) |
| แสดงเนื้อหาในแอป Google (เมนู) | สร้างเมนู 🏠 Family Budget ในไฟล์ชีต |
| จัดการทริกเกอร์ | ทริกเกอร์รายวันสำหรับค่าขนมอัตโนมัติและเตือนบิล |
| ส่งอีเมลในนามคุณ | ส่งอีเมลเตือนบิลถึงผู้ดูแล (วันละไม่เกิน 1 ฉบับ) |
| ดูอีเมลของคุณ | ตรวจว่าผู้ที่รัน setup / resetAdminPin / clearSampleData คือเจ้าของไฟล์ — ผู้เข้าชมเว็บแอปจึงเรียกฟังก์ชันเหล่านี้ไม่ได้ |
ระบบไม่ขอสิทธิ์อ่าน Gmail, Drive ทั้งหมด หรือรายชื่อติดต่อ และไม่ส่งข้อมูลการเงินออกนอกบัญชีของคุณ (ยกเว้นโหลดฟอนต์/ไอคอน/ไลบรารีกราฟจาก CDN สาธารณะ)
