Case Study Excel VBA Automation ติดตาม Down Payment ลดเวลาหลายชั่วโมงเหลือไม่กี่วินาที

Case Study: ระบบติดตามและแจ้งเตือน Down Payment อัตโนมัติด้วย Excel VBA

Executive Summary

การควบคุมเงินมัดจำ (Down Payment) ที่จ่ายล่วงหน้าให้คู่ค้าเป็นงานที่ต้องอาศัยความละเอียดสูง เนื่องจากเกี่ยวข้องกับหลาย PO หลาย Item และมีผู้รับผิดชอบติดตามกระจายอยู่ตามแผนกต่าง ๆ ในองค์กร

แต่ละเดือนทีมงานต้องไล่ตรวจสอบข้อมูลจากหลายชีตที่เกี่ยวข้องกับ Down Payment คัดกรองรายการที่ครบกำหนด จัดกลุ่มตามผู้รับผิดชอบ แล้วจึงเขียนอีเมลแจ้งเตือนแยกเป็นรายบุคคล ซึ่งเป็นงานที่ใช้เวลามากและมีความเสี่ยงที่จะตกหล่นรายการ

เพื่อแก้ปัญหานี้ จึงได้พัฒนาระบบ Excel VBA Automation ที่ทำหน้าที่รวบรวมข้อมูลจากหลายชีต จัดกลุ่มตามรอบความเร่งด่วน และส่งอีเมลแจ้งเตือนพร้อมตารางรายการแนบให้ผู้รับผิดชอบแต่ละคนโดยอัตโนมัติผ่าน Outlook พร้อมทั้งเก็บ Archive ข้อมูลไว้สำหรับการตรวจสอบย้อนหลัง

ผลลัพธ์คือกระบวนการที่เคยต้องใช้เวลาหลายชั่วโมงต่อรอบ ลดลงเหลือเพียงการกดปุ่มครั้งเดียวจาก Custom Ribbon บน Excel


Business Challenge

ข้อมูล Down Payment ในองค์กรมักกระจายอยู่ในหลายชีตที่ตั้งชื่อแตกต่างกันไปตามหน่วยงานหรือรอบงาน คำถามที่ทีมงานต้องตอบซ้ำ ๆ ทุกเดือน ได้แก่

  • รายการใดถึงกำหนดตรวจสอบแล้วในเดือนนี้
  • รายการใดใกล้ครบกำหนดมาก ต้องเร่งติดตามเป็นพิเศษ
  • ใครเป็นผู้รับผิดชอบแต่ละ PO และควรแจ้งเตือนใครบ้างเป็น CC
  • Comment หรือหมายเหตุที่เคยบันทึกไว้ในรายการเดิมยังใช้อ้างอิงได้หรือไม่ เมื่อข้อมูลถูก Refresh ใหม่
  • มีการส่งอีเมลซ้ำหรือส่งข้ามรอบหรือไม่

การรวบรวมข้อมูลด้วยมือจากหลายชีต การจับคู่ผู้รับผิดชอบ และการพิมพ์อีเมลทีละฉบับ ทำให้เกิดความเสี่ยงทั้งด้านเวลาและความถูกต้อง โดยเฉพาะเมื่อจำนวนรายการเพิ่มขึ้นตามการเติบโตของธุรกิจ


Solution

มีการพัฒนาระบบแจ้งเตือน Down Payment บน Microsoft Excel โดยใช้

  • Excel VBA
  • Custom Ribbon (XML) เพื่อสร้างเมนูใช้งานเฉพาะ
  • Scripting Dictionary สำหรับจัดการข้อมูล Comment และ User Group
  • Advanced Filter สำหรับแยกรายการตามรอบความเร่งด่วน
  • Outlook Automation สำหรับส่งอีเมล HTML แบบมีตารางแนบ
  • Archive Worksheet สำหรับบันทึกประวัติ PO ที่เคยประมวลผลแล้ว

ผู้ใช้งานเพียงกดปุ่ม Send บนแท็บ Down Payment ที่ถูกสร้างขึ้นเองบน Ribbon ระบบจะทำงานทั้งกระบวนการโดยอัตโนมัติ


Key Capabilities

Automatic Comment Retention

ก่อน Refresh ข้อมูลใหม่ทุกครั้ง ระบบจะรวบรวม Comment ที่ผู้ใช้เคยบันทึกไว้ในแต่ละรายการ (อ้างอิงจาก PO, Item, DocNum) เก็บไว้ใน Dictionary แล้วเขียนกลับเข้าไปในตำแหน่งเดิมหลัง Refresh เสร็จ ทำให้ข้อมูลอ้างอิงของผู้ใช้งานไม่สูญหาย

Multi-Sheet Data Consolidation

ระบบจะไล่ตรวจทุก Worksheet ในไฟล์ที่มีชื่อเกี่ยวข้องกับ “Down Payment” และดึงข้อมูลที่จำเป็น เช่น PO, Item, DocNum, จำนวนเงิน สกุลเงิน และวันครบกำหนด มารวมไว้ในชีต Database ส่วนกลางเพียงจุดเดียว

Round-Based Classification

รายการจะถูกนับจำนวนครั้งที่เคยถูกประมวลผลก่อนหน้า (เทียบกับข้อมูลใน Archive) และจัดกลุ่มเป็นรอบที่ 1 ถึง 3 ทำให้สามารถกำหนดข้อความเตือนหรือระดับความเร่งด่วนที่ต่างกันไปตามรอบได้

Automatic User Grouping

ระบบจับคู่ผู้รับผิดชอบและอีเมล CC ของแต่ละ PO จากชีต Mail Template แล้วจัดกลุ่มรายการตามผู้รับผิดชอบโดยอัตโนมัติ เพื่อให้อีเมลแต่ละฉบับส่งถึงเฉพาะผู้ที่เกี่ยวข้อง

HTML Email with Embedded Table

สำหรับผู้รับผิดชอบแต่ละคน ระบบจะสร้างอีเมล HTML ที่มีตารางแสดงรายละเอียด PO, Item, จำนวนเงิน สกุลเงิน วันครบกำหนด และ Comment ครบถ้วน พร้อมข้อความส่วนหัวและท้ายที่ดึงมาจาก Template ที่ปรับแต่งได้ แล้วส่งผ่าน Outlook โดยอัตโนมัติ

Data Archiving

เมื่อประมวลผลเสร็จในแต่ละรอบ ข้อมูลจะถูกคัดลอกเข้าสู่ชีต Archive เพื่อใช้เป็นฐานสำหรับนับจำนวนครั้งที่รายการถูกติดตามในรอบถัดไป และเป็นหลักฐานย้อนหลัง


Design Philosophy

แนวคิดหลักของระบบนี้คือ

ไม่ได้มุ่งสร้างระบบส่งเมลแบบตายตัว แต่สร้างเครื่องมือที่ปรับข้อความ ผู้รับ และเงื่อนไขความเร่งด่วนได้ตาม Template ที่ผู้ใช้งานควบคุมเอง

การแยกข้อมูล Template (ข้อความอีเมล ผู้รับผิดชอบ อีเมล CC) ออกจาก Logic การประมวลผล ทำให้ผู้ใช้งานหน้างานสามารถปรับเปลี่ยนเนื้อหาหรือผู้รับได้เองโดยไม่ต้องแก้โค้ด และยังสามารถเพิ่มชีตข้อมูลใหม่ได้ตราบใดที่ตั้งชื่อสอดคล้องกับรูปแบบที่ระบบตรวจจับ


Business Benefits

Time Savings

ลดเวลาการรวบรวมข้อมูล จัดกลุ่ม และเขียนอีเมลจากหลายชั่วโมงต่อรอบ เหลือเพียงไม่กี่วินาทีต่อการกดปุ่มหนึ่งครั้ง

Reduced Human Error

ลดความเสี่ยงจากการตกหล่นรายการ การส่งอีเมลผิดคน หรือ Comment ที่หายไปหลัง Refresh ข้อมูล

Consistent Follow-up

ทุกรายการถูกจัดกลุ่มตามรอบความเร่งด่วนอย่างเป็นระบบ ทำให้การติดตามเป็นไปอย่างสม่ำเสมอไม่ขึ้นกับดุลยพินิจของผู้ปฏิบัติงานแต่ละคน

Audit Trail

การเก็บ Archive ทุกรอบช่วยให้สามารถตรวจสอบย้อนหลังได้ว่ารายการใดเคยถูกแจ้งเตือนไปแล้วกี่ครั้ง

Self-Service Customization

ผู้ใช้งานปรับเนื้อหาอีเมลและผู้รับผิดชอบได้เองผ่านชีต Template โดยไม่ต้องพึ่งพาทีมพัฒนา


Lessons Learned

งาน Follow-up ที่ดูเหมือนเป็นงานทำซ้ำง่าย ๆ มักซ่อนความซับซ้อนไว้ในรายละเอียด เช่น การรักษาข้อมูล Comment ของผู้ใช้ให้อยู่รอดผ่านการ Refresh ข้อมูล หรือการจัดกลุ่มผู้รับอีเมลให้ถูกต้องตามความรับผิดชอบจริง

การแยก Layer ระหว่าง “ข้อมูลที่เปลี่ยนบ่อย” (Template, ผู้รับผิดชอบ) กับ “Logic ที่ควรคงที่” (การดึงข้อมูล การจัดกลุ่ม การส่งเมล) เป็นกุญแจสำคัญที่ทำให้ระบบเล็ก ๆ บน Excel สามารถใช้งานได้จริงในระยะยาว โดยผู้ใช้งานหน้างานไม่ต้องรอทีมพัฒนาทุกครั้งที่ต้องการปรับเปลี่ยนเนื้อหาหรือผู้รับผิดชอบ

สิ่งที่น่าสนใจคือ Logic แบบนี้ใช้ได้กับหลายงาน เช่น⁣⁣

  • งานอนุมัติ
  • เอกสารค้าง⁣
  • งานชำระเงิน⁣
  • งานแจ้งซ่อม⁣
  • งานที่รอการตอบกลับ⁣
  • งานที่รอ Update จากแต่ละหน่วยงาน⁣⁣

เพียงเปลี่ยน Data และ Business Rule⁣ ก็สามารถนำแนวคิดเดียวกันไปใช้กับงานอื่นได้⁣

Case Study ที่น่าสนใจ

Scroll to Top