Excel สามารถเปลี่ยนให้เป็นแพลตฟอร์มแอปขนาดเล็กได้เมื่อมีโครงสร้างที่มีการจัดรูปแบบที่ชัดเจน เลเยอร์ลอจิกที่ซ่อนอยู่ ปุ่ม แบบฟอร์ม และฟีเจอร์โต้ตอบแบบไดนามิก ด้วยการรวมปุ่ม การควบคุมแบบฟอร์ม และตรรกะที่ซ่อนอยู่ คุณสามารถสร้างเครื่องมือเชิงโต้ตอบสำหรับการป้อนข้อมูล แดชบอร์ด หรือการติดตามกระบวนการได้
ในบทช่วยสอนนี้ เราจะแสดงวิธีเปลี่ยน Excel ให้เป็นแอปพื้นฐานโดยใช้ปุ่ม แบบฟอร์ม และตรรกะที่ซ่อนอยู่
ขั้นตอนที่ 1:วางแผนคุณลักษณะของแอป
หากต้องการเปลี่ยน Excel ให้เป็นแอป คุณต้องวางแผนสิ่งที่คุณต้องการและสิ่งที่แอปของคุณจะทำ สมมติว่าเราจะสร้างแอปที่รับคำสั่งซื้อโดยใช้แบบฟอร์มและจัดเก็บข้อมูลคำสั่งซื้อ
โดยสร้างแผ่นงานเหล่านี้:
- บ้าน: หน้า Landing Page ที่ดูสะอาดตาพร้อมปุ่มขนาดใหญ่ (“เพิ่มคำสั่งซื้อ”, “ข้อมูลคำสั่งซื้อ” “แดชบอร์ด”)
- รูปแบบ: อินพุตที่ผู้ใช้พบเห็น (ดรอปดาวน์ วันที่ ฟิลด์ตัวเลข) พร้อมปุ่มส่งคำสั่งซื้อ
- ข้อมูลการสั่งซื้อ: ตาราง Excel ตารางเดียวที่เก็บบันทึกทั้งหมด (คิดว่าเป็นฐานข้อมูลของคุณ)
- ตรรกะ: แผ่นงานที่ซ่อนอยู่สำหรับตารางตัวช่วย ช่วงที่มีชื่อ กฎการตรวจสอบ และตัวนับ ID
- แดชบอร์ด: หากต้องการ คุณสามารถสร้างแดชบอร์ดจากข้อมูลการขายด้วยการ์ด KPI ขนาดเล็กและแผนภูมิที่ป้อนโดยแผ่นงาน Logic
ขั้นตอนที่ 2:สร้างแผ่นแบบฟอร์มการสั่งซื้อ
- สร้างชีตใหม่ชื่อ แบบฟอร์มการสั่งซื้อ .
- ในคอลัมน์ A ให้แสดงรายการป้ายกำกับอินพุตต่อไปนี้:
- รหัสคำสั่งซื้อ
- วันที่
- หมวดหมู่
- ผลิตภัณฑ์
- หน่วย
- ราคาต่อหน่วย
- จำนวนเงินทั้งหมด

- ในคอลัมน์ B เว้นเซลล์ว่างไว้สำหรับการป้อนข้อมูล:
- จัดรูปแบบแบบฟอร์มให้สวยงาม:
- ปรับความกว้างของคอลัมน์
- เพิ่มเส้นขอบเซลล์
ขั้นตอนที่ 3:เพิ่มการควบคุมแบบฟอร์ม
หากต้องการทำให้ฟอร์มเป็นแบบไดนามิกและโต้ตอบได้ คุณสามารถใช้รายการดรอปดาวน์ได้ ในแผ่นตรรกะ ให้แสดงรายการข้อมูลทั้งหมด เช่น หมวดหมู่ ผลิตภัณฑ์ ราคา ฯลฯ จากนั้นสร้างช่วงที่มีชื่อเพื่อใช้ในตัวควบคุมแบบฟอร์ม
สร้างช่วงที่มีชื่อ:
- หมวดหมู่รายการพร้อมชื่อผลิตภัณฑ์
- ไปที่สูตร แท็บ>> เลือก ตัวจัดการชื่อ>> เลือก ใหม่ .
หมวดหมู่: ป>
- ใน ชื่อ: หมวดหมู่.
- ใน หมายถึง:

ผลิตภัณฑ์: ป>
- เลือกหมวดหมู่และผลิตภัณฑ์
- ไปที่สูตร แท็บ>> เลือก สร้างจากส่วนที่เลือก .
- เลือกแถวบนสุด .
- คลิก ตกลง .

ราคาต่อหน่วย :
- เลือกชื่อผลิตภัณฑ์และราคา
- ไปที่สูตร แท็บ>> เลือก สร้างจากส่วนที่เลือก .
- เลือกคอลัมน์ซ้าย .
- คลิก ตกลง .

สร้างรายการแบบเลื่อนลง:
หมวดหมู่: ป>
- เลือกเซลล์ B4
- ไปที่ ข้อมูล แท็บ>> เลือก การตรวจสอบข้อมูล .
- ใต้ อนุญาต >> เลือก รายการ .
- ใน แหล่งที่มา: แทรกช่วงที่มีชื่อ
- คลิก ตกลง .

ผลิตภัณฑ์: ป>
- เลือกเซลล์ B5 และสร้างรายการแบบเลื่อนลงที่เกี่ยวข้อง
- ไปที่ ข้อมูล แท็บ>> เลือก การตรวจสอบข้อมูล .
- ใต้ อนุญาต >> เลือก รายการ .
- ใน แหล่งที่มา: แทรกสูตรต่อไปนี้
- คลิก ตกลง .

- คุณสามารถเลือกผลิตภัณฑ์ตามหมวดหมู่ได้
หน่วย: ป>
- เลือกเซลล์ B6
- ไปที่ ข้อมูล แท็บ>> เลือก การตรวจสอบข้อมูล .
- ใต้ อนุญาต >> เลือก รายการ .
- ใน แหล่งที่มา: แทรกรายการไม่เกิน 10
- คลิก ตกลง .

ราคาต่อหน่วย: ป>
- เลือกเซลล์ B7
- ไปที่ ข้อมูล แท็บ>> เลือก การตรวจสอบข้อมูล .
- ใต้ อนุญาต >> เลือก รายการ .
- ใน แหล่งที่มา: แทรกสูตรต่อไปนี้
- คลิก ตกลง .
=INDIRECT(SUBSTITUTE(B5, " ", "_"))

- เป็นรายการแบบเลื่อนลงที่ต้องพึ่งพา
- คุณสามารถเลือกราคาตามผลิตภัณฑ์ได้
เพิ่มปุ่มส่ง:
- ไปที่ นักพัฒนา แท็บ>> เลือก แทรก >> เลือก ปุ่ม จากการควบคุมแบบฟอร์ม .
- วาดปุ่มใต้แบบฟอร์ม
- ตั้งชื่อเป็น “ส่งคำสั่งซื้อ” .

- ปล่อยไว้ก่อน เราจะกำหนดมาโครในขั้นตอนที่ 5
ขั้นตอนที่ 4 สร้างฐานข้อมูลคำสั่งซื้อและแผ่นแดชบอร์ด
- เพิ่มชีตใหม่ชื่อ OrderData
- ในแถวที่ 1 ให้เพิ่มส่วนหัวต่อไปนี้:
- รหัสคำสั่งซื้อ
- วันที่
- หมวดหมู่
- ผลิตภัณฑ์
- ราคาต่อหน่วย
- หน่วย
- ยอดรวม_จำนวน

- เราจะซ่อนแผ่นงานนี้ในภายหลังเพื่อป้องกันไม่ให้ผู้ใช้เข้าถึงแบ็กเอนด์
ขั้นตอนที่ 5:เพิ่มตรรกะ VBA
ตอนนี้ เราจะใช้โค้ด VBA เพื่อส่งข้อมูลแบบฟอร์มในแผ่นข้อมูลการสั่งซื้อ รหัส VBA นี้จะคัดลอกข้อมูลแบบฟอร์มไปยังฐานข้อมูลและล้างแบบฟอร์มสำหรับรายการถัดไป
- คลิกขวาที่ SubmitOrder ปุ่ม>> กำหนดมาโคร >> คลิกใหม่ .

- ใส่รหัสต่อไปนี้
Sub SubmitOrder()
Dim wsForm As Worksheet, wsDB As Worksheet
Dim nextRow As Long
Dim lastOrderID As String
Dim newOrderNum As Long
Set wsForm = ThisWorkbook.Sheets("Order Form")
Set wsDB = ThisWorkbook.Sheets("OrderData")
' Find the next empty row in the database
nextRow = wsDB.Cells(wsDB.Rows.Count, "A").End(xlUp).Row + 1
' Get last order ID (skip header)
If nextRow = 2 Then
' No orders yet ? start from 1001
newOrderNum = 1001
Else
lastOrderID = wsDB.Cells(nextRow - 1, 1).Value ' e.g., ORD-1005
newOrderNum = CLng(Replace(lastOrderID, "ORD-", "")) + 1
End If
' Save the current order to database
wsDB.Cells(nextRow, 1).Value = "ORD-" & newOrderNum
wsDB.Cells(nextRow, 2).Value = wsForm.Range("B3").Value ' Date
wsDB.Cells(nextRow, 3).Value = wsForm.Range("B4").Value ' Category
wsDB.Cells(nextRow, 4).Value = wsForm.Range("B5").Value ' Product
wsDB.Cells(nextRow, 5).Value = wsForm.Range("B6").Value ' Units
wsDB.Cells(nextRow, 6).Value = wsForm.Range("B7").Value ' Unit Price
wsDB.Cells(nextRow, 7).Value = wsForm.Range("B8").Value ' Revenue
' === Safe clear: only values ===
Application.EnableEvents = False
wsForm.Range("B3").Value = vbNullString
wsForm.Range("B4").Value = vbNullString ' Category (keeps DV)
wsForm.Range("B5").Value = vbNullString ' Product (keeps DV)
wsForm.Range("B6").Value = vbNullString ' Units (keeps DV)
wsForm.Range("B7").Value = vbNullString ' Unit Price (keeps DV)
wsForm.Range("B8").Formula = "=B6*B7" ' Restore Revenue formula
Application.EnableEvents = True
' Generate the next Order ID for the next entry
wsForm.Range("B2").Value = "ORD-" & (newOrderNum + 1)
MsgBox "Order submitted successfully!", vbInformation
End Sub

คำอธิบาย:
- รหัสคำสั่งซื้อจะเพิ่มขึ้นโดยอัตโนมัติหลังการส่งแต่ละครั้ง
- การส่งครั้งแรกเริ่มต้นที่ ORD-1001 หากฐานข้อมูลว่างเปล่า
- หลังจากการคลิกแต่ละครั้ง:
- มาโครจะตรวจสอบหมายเลขคำสั่งซื้อที่เก็บไว้ล่าสุด
- มันเพิ่มขึ้นทีละ 1
- กรอก B2 ในแบบฟอร์มด้วย ID ถัดไปที่มีอยู่
- จะล้างเฉพาะค่า ไม่ใช่การตรวจสอบความถูกต้องของสูตรหรือข้อมูล ดังนั้นรายการถัดไปจึงเริ่มต้นใหม่
ขั้นตอนที่ 6:สร้างแผ่นแดชบอร์ด
ตอนนี้คุณสามารถสร้างแดชบอร์ดตามข้อมูลคำสั่งซื้อได้แล้ว
- สร้าง KPI: คำนวณคำสั่งซื้อทั้งหมด ยอดขาย หน่วยที่ขาย มูลค่าการสั่งซื้อเฉลี่ย ฯลฯ
- แทรกแผนภูมิ: สร้างแผนภูมิแบบไดนามิกหรือแทรก PivotChart

ขั้นตอนที่ 7:จัดรูปแบบชีตเพื่อให้ APP ดู
สร้างหน้าแรก: ป>
- ไปที่ แทรก แท็บ>> เลือก ภาพประกอบ >> เลือก รูปร่าง .
- เลือก ปุ่ม .
- ลากปุ่มเข้าไปในเซลล์

- คลิกขวารูปร่าง>> เลือก ลิงก์ .

- เลือก วางในเอกสารนี้>> เลือกเซลล์แผ่นงาน (ปุ่มนำทาง ไม่มีรหัส)
- เลือก แบบฟอร์มการสั่งซื้อ .
- คลิก ตกลง .

- ด้วยการทำตามขั้นตอนที่คล้ายกัน ให้แทรกไฮเปอร์ลิงก์สำหรับแดชบอร์ดและแผ่นข้อมูล OrderData
- ล็อคข้อมูลการสั่งซื้อในภายหลังเพื่อความปลอดภัย

ซ่อนตรรกะ: ป>
หากต้องการให้ Excel ทำหน้าที่เหมือนแอปมากขึ้น:
- เลือกแผ่นงาน
- คลิกขวา>> เลือก ซ่อน .

- ป้องกันแผ่นแบบฟอร์มคำสั่งซื้อเพื่อให้สามารถเปลี่ยนแปลงได้เฉพาะเซลล์ที่ป้อนเท่านั้น
- ไปที่มุมมอง แท็บ:
- ยกเลิกการเลือก แถบสูตร .
- ยกเลิกการเลือก เส้นตาราง .
ขั้นตอนที่ 8:ทดสอบแอปสั่งซื้อ
- ป้อนคำสั่งตัวอย่าง:
- รหัสคำสั่งซื้อ: มันจะป้อนรหัสคำสั่งซื้อโดยอัตโนมัติ
- วันที่: แทรกวันที่ 1/3/2025
- หมวดหมู่: เลือกหมวดหมู่จากรายการแบบเลื่อนลง
- ผลิตภัณฑ์: เลือกเมาส์จากเมนูแบบเลื่อนลงที่เกี่ยวข้อง
- หน่วย: เลือกหมายเลขหน่วยจากรายการ
- ราคาต่อหน่วย: เลือกราคาจากเมนูแบบเลื่อนลงที่เกี่ยวข้อง
- รายได้: คำนวณอัตโนมัติ
- คลิก ส่งคำสั่งซื้อ .

- รหัสคำสั่งซื้อถัดไปจะปรากฏขึ้นโดยอัตโนมัติ
- แบบฟอร์มจะถูกล้างสำหรับคำสั่งซื้อถัดไป
- กล่องข้อความจะปรากฏขึ้นหากการส่งแบบฟอร์มสำเร็จ
- คลิก ตกลง .

- ตรวจสอบเอกสาร OrderData; รายการจะปรากฏขึ้นที่นั่นโดยอัตโนมัติ

บทสรุป
คุณสามารถทำตามขั้นตอนข้างต้นเพื่อเปลี่ยนแผ่นงาน Excel ให้เป็นแอปได้ คุณสามารถใช้ปุ่ม แบบฟอร์ม และตรรกะที่ซ่อนอยู่เพื่อสร้างแอปแบบไดนามิก เครื่องมือที่มีลักษณะคล้ายแอปดังกล่าวเป็นวิธีที่มีประสิทธิภาพในการปรับปรุงการป้อนข้อมูลและลดข้อผิดพลาดของผู้ใช้ โดยไม่ต้องลงทุนในซอฟต์แวร์พิเศษ ด้วยการรวมแบบฟอร์มส่วนหน้าที่ดูสะอาดตา รายการดรอปดาวน์การตรวจสอบความถูกต้องของข้อมูล แผ่นฐานข้อมูลที่ซ่อนอยู่ และระบบอัตโนมัติของ VBA เราจึงสร้างระบบการจัดการคำสั่งซื้อที่มีฟังก์ชันการทำงานเต็มรูปแบบ คุณสามารถขยายการตั้งค่านี้ด้วยแดชบอร์ด รายงานสรุป หรือแม้แต่การรวม Power Query เพื่อการวิเคราะห์ขั้นสูงยิ่งขึ้น
รับแบบฝึกหัด Excel ขั้นสูงพร้อมโซลูชันฟรี!