สร้างไฟล์ Google Sheets ใหม่
- เปิด sheets.new (หรือ Google Drive › ใหม่ › Google ชีต) ด้วยบัญชีที่ต้องการเก็บข้อมูล
- ตั้งชื่อไฟล์ เช่น Money Pro — การเงินของฉัน
เคล็ดลับ: ไฟล์นี้คือ "ฐานข้อมูล" ของระบบ ห้ามลบ ย้ายโฟลเดอร์ได้ตามสบาย · ถ้าเคยใช้ Money Diary ไม่ต้องติดตั้งทับไฟล์เดิม สร้างไฟล์ใหม่แล้วใช้เมนู "นำเข้าจาก Money Diary" ภายหลังได้ (ชื่อชีตไม่ชนกัน ติดตั้งในไฟล์เดิมก็ไม่ทำให้ข้อมูลเดิมเสีย)
เปิด Apps Script จากไฟล์ชีต
- ในไฟล์ชีต กดเมนู ส่วนขยาย › Apps Script (Extensions › Apps Script)
- แท็บใหม่จะเปิดหน้าแก้ไขโค้ด มีไฟล์
Code.gsว่าง ๆ อยู่ 1 ไฟล์ - ตั้งชื่อโปรเจกต์ที่มุมซ้ายบน เช่น Money Pro (ชื่อนี้จะแสดงในหน้าขอสิทธิ์)
สำคัญ: ต้องเปิด Apps Script จากเมนูของไฟล์ชีต เท่านั้น (ไม่ใช่สร้างจาก script.google.com) เพื่อให้โค้ดผูกกับไฟล์นี้
วางไฟล์ทั้ง 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
- กดไอคอนเฟือง การตั้งค่าโปรเจกต์ (Project Settings) ทางซ้าย
- ติ๊ก แสดงไฟล์ Manifest "appsscript.json" ในเครื่องมือแก้ไข
- กลับไปที่ เครื่องมือแก้ไข (ไอคอน <>) เปิด
appsscript.jsonแล้ววางเนื้อหาจากไฟล์ในโฟลเดอร์ทับทั้งหมด - กด Ctrl+S เพื่อบันทึก
ตรวจสอบ: ด้านซ้ายต้องมี 3 ไฟล์ appsscript.json · Code.gs · Index.html ถ้าชื่อไฟล์ HTML ไม่ใช่ Index ตรงตัว หน้าเว็บจะเปิดไม่ขึ้น
รันฟังก์ชัน setup และอนุญาตสิทธิ์
- ที่แถบเครื่องมือด้านบน เลือกฟังก์ชัน
setupแล้วกด ▶ เรียกใช้ (Run) - ครั้งแรก Google จะขอสิทธิ์ กด ตรวจสอบสิทธิ์ (Review permissions)

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

- หน้าถัดไปแสดงรายการสิทธิ์ (ดู สิทธิ์ที่ขอ) ติ๊ก เลือกทั้งหมด แล้วกด ดำเนินการต่อ
- รอจนขึ้น การดำเนินการเสร็จสมบูรณ์ — ระบบสร้างชีต 9 ชีต หมวดหมู่เริ่มต้น ข้อมูลตัวอย่าง 12 เดือน (พนักงานบริษัท เงินเดือน บัตร 2 ใบ ผ่อนมือถือ 10 เดือน ผ่อนคอนโด/รถ) และ ทริกเกอร์รายวัน 07:00 น.
ปลอดภัยไหม? โค้ดทั้งหมดอยู่ในโปรเจกต์ของคุณ เปิดอ่านได้ทุกบรรทัด ทำงานด้วยบัญชีของคุณเอง ไม่มีการส่งข้อมูลการเงินไปเซิร์ฟเวอร์อื่น
ข้อมูลเข้าใช้งานครั้งแรก (PIN ผู้ดูแล)
ระบบไม่มี PIN ตั้งต้นตายตัว — ตอนรัน setup ครั้งแรก ระบบสุ่ม PIN 6 หลัก ให้คุณคนเดียว และแสดงใน บันทึกการดำเนินการ (Execution log) ด้านล่างหน้า Apps Script เท่านั้น:
| เรื่อง | รายละเอียด |
|---|---|
| PIN เริ่มต้นได้จากไหน | บันทึกการดำเนินการหลังรัน setup ครั้งแรก (ไม่ส่งทางอีเมล ไม่อยู่ในชีต ระบบเก็บเฉพาะค่าแฮช) |
| เปลี่ยน PIN | เข้าเว็บแอป › ตั้งค่า › เปลี่ยน PIN ผู้ดูแล (ตัวเลข 4–8 หลัก) |
| ลืม PIN / รีเซ็ต | เปิด Apps Script › เลือกฟังก์ชัน resetAdminPin › เรียกใช้ › PIN ใหม่ขึ้นในบันทึกการดำเนินการ (ทุกอุปกรณ์ต้องเข้าสู่ระบบใหม่) |
| รัน setup ซ้ำ | ไม่สร้าง PIN ใหม่ (PIN เดิมยังใช้ได้) และไม่ลบข้อมูล — ถ้าไม่ได้จด PIN ให้ใช้ resetAdminPin |
| ใส่ผิดหลายครั้ง | ผิดเกิน 8 ครั้ง ระบบพัก 10 นาทีเพื่อกันการเดา |
| ใครรีเซ็ตได้ | เฉพาะเจ้าของสคริปต์ที่กด "เรียกใช้" ในหน้า Apps Script — คนที่มีลิงก์เว็บแอปรีเซ็ตหรือรัน setup ไม่ได้ |
จด PIN ทันที และอย่าแชร์ภาพหน้าจอบันทึกการดำเนินการให้ผู้อื่น
เผยแพร่เป็นเว็บแอป
- กดปุ่มสีน้ำเงิน การทำให้ใช้งานได้ (Deploy) มุมขวาบน › การทำให้ใช้งานได้รายการใหม่

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

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

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

เปิดใช้งานครั้งแรก
- วาง URL ในเบราว์เซอร์ (คอมหรือมือถือ) จะพบหน้าใส่ PIN — ใส่ PIN จากขั้นตอนที่ 5 (ระบบจำเครื่องไว้ 30 วัน)
- ลองเล่นกับข้อมูลตัวอย่าง: ดูหน้า บัตรเครดิต & ผ่อน หนี้สิน ความมั่งคั่งสุทธิ
- เมื่อพร้อมใช้จริง: ตั้งค่า › ล้างข้อมูลตัวอย่าง (พิมพ์ "ลบทั้งหมด") — หมวดหมู่ การตั้งค่า และ PIN ยังอยู่
- ไปหน้า บัญชีทั้งหมด เพิ่มบัญชีของคุณพร้อมยอดยกมา · บัตรเครดิต: ใส่วันตัดรอบ วันครบกำหนด วงเงิน และ เลขท้าย 4 หลัก (ห้ามใส่เลขบัตรเต็ม)
- เพิ่ม รายการประจำ (เงินเดือน ค่าเน็ต ค่าสมาชิก) รายการผ่อน และ หนี้สิน ที่มีอยู่
- หน้า ตั้งค่า: เลือกความถี่อีเมลสรุป แล้วกด ส่งอีเมลสรุปทดสอบ
- บนมือถือ: เมนูเบราว์เซอร์ › เพิ่มไปยังหน้าจอหลัก เพื่อเปิดได้เหมือนแอป


ย้ายข้อมูลจาก Money Diary (ไม่บังคับ)
- หน้า ตั้งค่า › นำเข้าข้อมูลจาก Money Diary › เริ่มนำเข้า
- ลิงก์สเปรดชีต: คัดลอกลิงก์ไฟล์ Google Sheets ของ Money Diary (บัญชีเดียวกัน) มาวาง — หรือเลือก ไฟล์ CSV ที่กด "ส่งออก CSV" จากหน้ารายการของ Money Diary
- กด ตรวจสอบก่อน ดูจำนวนรายการ บัญชีใหม่ (จากกระเป๋าเงิน) และหมวดใหม่ที่จะสร้าง แล้วกด นำเข้า
- ไปหน้า บัญชีทั้งหมด แก้วันตัดรอบ/ครบกำหนด/วงเงินของบัตรเครดิตที่นำเข้า (ค่าเริ่มต้น ตัด 25 ชำระ 10)

อัปเดตเป็นเวอร์ชันใหม่ (ลิงก์เดิม)
- วาง
Code.gsและIndex.htmlเวอร์ชันใหม่ทับของเดิม แล้วบันทึก (ข้อมูลในชีตไม่หาย) · ถ้ามีappsscript.jsonใหม่ให้วางด้วย - รัน
setupอีกครั้ง (เพิ่มคอลัมน์/ชีตใหม่ถ้ามี ข้อมูลเดิมไม่ถูกลบ) - การทำให้ใช้งานได้ › จัดการการทำให้ใช้งานได้ › ✏️ › เวอร์ชัน เวอร์ชันใหม่ › การทำให้ใช้งานได้
อย่ากด "การทำให้ใช้งานได้รายการใหม่" ซ้ำ เพราะจะได้ลิงก์ใหม่
ลืม PIN / แก้ปัญหาที่พบบ่อย
ลืม PIN ผู้ดูแล
เปิด Apps Script › เลือกฟังก์ชัน resetAdminPin › กด เรียกใช้ › PIN ใหม่ขึ้นในบันทึกการดำเนินการ
รายการประจำ/งวดผ่อนไม่ลงอัตโนมัติ
หน้า รายการประจำ จะบอกว่าทริกเกอร์ติดตั้งแล้วหรือยัง ถ้ายัง ให้รันฟังก์ชัน installTriggers ใน Apps Script และตรวจว่าเปิด "ลงอัตโนมัติ" ที่หน้าตั้งค่า ระหว่างนั้นกดปุ่ม ลงรายการที่ถึงกำหนด เองได้ (กดซ้ำไม่ลงซ้ำ)
ไม่ได้รับอีเมลสรุป
ดูโฟลเดอร์สแปม · ตรวจความถี่ที่หน้าตั้งค่า (รายสัปดาห์ = ทุกวันจันทร์ 07:00 น.) · ถ้า appsscript.json ไม่มีสิทธิ์ script.send_mail ให้วางไฟล์ใหม่แล้วรัน setup อีกครั้งเพื่ออนุญาตสิทธิ์
ยอดบิลไม่ตรงกับใบแจ้งยอดธนาคาร
ตรวจวันตัดรอบในหน้าบัญชี · รายการที่ธนาคารบันทึกช้ากว่าวันที่รูด ให้แก้วันที่ของรายการให้ตรงกับใบแจ้งยอด · ยอดยกมาของบัตรต้องเป็นยอดค้าง ณ วันเริ่มบันทึก
นำเข้าจาก Money Diary แล้วขึ้น "เปิดสเปรดชีตไม่ได้"
ไฟล์ต้องอยู่ในบัญชี Google เดียวกับที่ติดตั้งระบบนี้ (หรือแชร์ให้บัญชีนี้) ไม่งั้นใช้ทางเลือก "ไฟล์ CSV" แทน
เปิดลิงก์แล้วขึ้น "ไม่พบไฟล์ HTML ชื่อ Index"
ชื่อไฟล์ HTML ต้องเป็น Index ตรงตัวพิมพ์เล็ก-ใหญ่ เปลี่ยนชื่อแล้ว อัปเดตเวอร์ชัน
แก้โค้ดแล้วหน้าเว็บไม่เปลี่ยน
ลิงก์ /exec ใช้เวอร์ชันที่ deploy ไว้ ต้อง อัปเดตเวอร์ชัน ทุกครั้งที่แก้โค้ด
เปิดบนมือถือแล้วขึ้นหน้าล็อกอิน Google หรือ "ไม่มีสิทธิ์"
ตรวจว่าตั้ง ผู้มีสิทธิ์เข้าถึง = ทุกคน (ขั้นตอนที่ 6) หากแก้ภายหลังต้องอัปเดตเวอร์ชัน
ยังติดปัญหา? ติดต่อ [email protected] พร้อมภาพหน้าจอข้อความผิดพลาด (ไม่ต้องส่ง PIN หรือข้อมูลการเงิน)
สิทธิ์ที่ระบบขอ และเหตุผล
| สิทธิ์ | ใช้ทำอะไร |
|---|---|
| ดูและแก้ไขไฟล์ Google Sheets | อ่าน/เขียนไฟล์ชีตของระบบ และ อ่านอย่างเดียวไฟล์ Money Diary ที่คุณวางลิงก์เพื่อนำเข้า |
| ดูอีเมลของคุณ | ตรวจว่าผู้กดเรียกใช้ setup / resetAdminPin / installTriggers คือเจ้าของจากหน้า Apps Script และใช้เป็นผู้รับอีเมลสรุปเริ่มต้น |
| จัดการทริกเกอร์ของสคริปต์ | ติดตั้งงานรายวัน 07:00 น. (ลงรายการประจำ/งวดผ่อน + อีเมลสรุป) |
| ส่งอีเมลในนามคุณ | ส่งอีเมลสรุปการเงิน ถึงตัวคุณเอง (หรืออีเมลที่คุณกำหนดในหน้าตั้งค่า) |
ระบบไม่ขอสิทธิ์อ่าน Gmail, Drive ทั้งหมด หรือรายชื่อติดต่อ ไม่เชื่อมบัญชีธนาคาร และไม่ส่งข้อมูลออกนอกบัญชีของคุณ (ยกเว้นโหลดฟอนต์/ไอคอน/ไลบรารีกราฟจาก CDN สาธารณะ)
