สรุป
ใน Microsoft Excel คุณสามารถสร้างแมโคร Microsoft Visual Basic for Applications (VBA) ที่จะระงับพร้อมท์ บันทึกการเปลี่ยนแปลง เมื่อคุณปิดเวิร์กบุ๊ก ซึ่งสามารถทําได้โดยการระบุสถานะของคุณสมบัติ เวิร์กบุ๊กที่บันทึกไว้ หรือโดยระงับการแจ้งเตือนทั้งหมดสําหรับเวิร์กบุ๊ก
ข้อมูลเพิ่มเติม
หมายเหตุ: Microsoft แสดงตัวอย่างการเขียนโปรแกรมสําหรับภาพประกอบเท่านั้น โดยไม่มีการรับประกันทั้งโดยชัดแจ้งหรือโดยนัย ซึ่งรวมถึงแต่ไม่จํากัดเพียงการรับประกันโดยนัยถึงความสามารถในเชิงพาณิชย์หรือความเหมาะสมสําหรับวัตถุประสงค์เฉพาะ บทความนี้จะถือว่าคุณคุ้นเคยกับภาษาการเขียนโปรแกรมที่กําลังแสดงอยู่ และมีเครื่องมือที่ใช้สําหรับสร้างและแก้ไขจุดบกพร่องของกระบวนการ วิศวกรฝ่ายสนับสนุนของ Microsoft สามารถช่วยอธิบายการทํางานของกระบวนการเฉพาะได้ อย่างไรก็ตาม จะไม่มีการปรับเปลี่ยนตัวอย่างเหล่านี้เพื่อให้มีฟังก์ชันการทํางานที่เพิ่มขึ้นหรือสร้างกระบวนการเพื่อตอบสนองความต้องการเฉพาะของคุณ เมื่อต้องการเตรียมพร้อมสําหรับการปรับใช้ตัวอย่างใดตัวอย่างหนึ่งด้านล่าง ให้ดําเนินการขั้นตอนเหล่านี้ก่อน:
-
เริ่ม Excel แล้วเปิดเวิร์กบุ๊กใหม่
-
กด ALT+F11 เพื่อเริ่มตัวแก้ไข Visual Basic
-
บนเมนู แทรก ให้คลิก มอดูล
-
พิมพ์ตัวอย่างโค้ดแมโครลงในแผ่นงานมอดูล
-
กด ALT+F11 เพื่อกลับไปยัง Excel
-
ใน Microsoft Office Excel 2003 และ Excel เวอร์ชันก่อนหน้า ให้เลือก แมโคร จากเมนู เครื่องมือ แล้วคลิก แมโครใน Microsoft Office Excel 2007 ให้คลิก แมโคร ในกลุ่ม โค้ด บนแท็บ นักพัฒนา ถ้าแท็บ นักพัฒนา ไม่พร้อมใช้งาน ให้ลองทําดังนี้: a. คลิก ปุ่ม Microsoft Office แล้วคลิก ตัวเลือกของ Excelb. ในประเภท ยอดนิยม ภายใต้ ตัวเลือกยอดนิยมสําหรับการทํางานกับ Excel ให้คลิกเพื่อเลือกแสดง แท็บ นักพัฒนา ในกล่องกาเครื่องหมาย Ribbon แล้วคลิก ตกลง
-
เลือกแมโครที่คุณต้องการ แล้วคลิก เรียกใช้
คุณสมบัติ บันทึก จะส่งกลับค่า เท็จ ถ้ามีการเปลี่ยนแปลงเวิร์กบุ๊กตั้งแต่ถูกบันทึกครั้งล่าสุดคุณสามารถใช้ชื่อ Subroutine ที่สงวนไว้ Auto_Close เพื่อระบุแมโครที่ควรทํางานเมื่อใดก็ตามที่เวิร์กบุ๊กถูกปิด ในการทําเช่นนั้น คุณสามารถควบคุมวิธีการจัดการเอกสารเมื่อผู้ใช้ปิดเอกสารใน Excel
ตัวอย่างที่ 1: ปิดเวิร์กบุ๊กโดยไม่บันทึกการเปลี่ยนแปลง
เมื่อต้องการบังคับปิดเวิร์กบุ๊กโดยไม่บันทึกการเปลี่ยนแปลง ใดๆ ให้พิมพ์โค้ดต่อไปนี้ในมอดูล Visual Basic ของเวิร์กบุ๊กนั้น:
Auto_Close ย่อย()
ThisWorkbook.Saved = True
End Sub
เมื่อคุณสมบัติ บันทึก ถูกตั้งค่าเป็น จริง Excel จะตอบสนองราวกับว่าเวิร์กบุ๊กได้ถูกบันทึกแล้วและไม่มีการเปลี่ยนแปลงเกิดขึ้นหลังจากการบันทึกครั้งล่าสุดนั้นคุณสมบัติ DisplayAlerts ของโปรแกรมสามารถใช้เพื่อวัตถุประสงค์เดียวกันได้ ตัวอย่างเช่น แมโครต่อไปนี้จะปิด DisplayAlerts ปิดเวิร์กบุ๊กที่ใช้งานอยู่โดยไม่บันทึกการเปลี่ยนแปลง แล้วเปิด DisplayAlerts อีกครั้ง
Sub CloseBook()
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub
คุณยังสามารถใช้อาร์กิวเมนต์ SaveChanges ของเมธอด ปิด ได้แมโครต่อไปนี้จะปิดเวิร์กบุ๊กโดยไม่บันทึกการเปลี่ยนแปลง:
Sub CloseBook2()
ActiveWorkbook.Close savechanges:=False
End Sub
ตัวอย่างที่ 2: ปิดเวิร์กบุ๊กและบันทึกการเปลี่ยนแปลง
เมื่อต้องการบังคับให้เวิร์กบุ๊กบันทึกการเปลี่ยนแปลง ให้พิมพ์โค้ดต่อไปนี้ในมอดูล Visual Basic ของเวิร์กบุ๊กนั้น:
Auto_Close ย่อย()
ถ้า ThisWorkbook.Saved = False แล้ว
ThisWorkbook.Save End If
End Sub
กระบวนการย่อยนี้จะตรวจสอบเพื่อดูว่าคุณสมบัติ ไฟล์ที่บันทึกไว้ ถูกตั้งค่าเป็น เท็จ หรือไม่ ถ้าเป็นเช่นนั้น เวิร์กบุ๊กได้ถูกเปลี่ยนแปลงตั้งแต่บันทึกครั้งล่าสุด และการเปลี่ยนแปลงเหล่านั้นจะถูกบันทึก