นำไปใช้กับ
Excel 2007

สรุป

ใน Microsoft Excel คุณสามารถสร้างแมโคร Microsoft Visual Basic for Applications (VBA) ที่จะระงับพร้อมท์ บันทึกการเปลี่ยนแปลง เมื่อคุณปิดเวิร์กบุ๊ก ซึ่งสามารถทําได้โดยการระบุสถานะของคุณสมบัติ เวิร์กบุ๊กที่บันทึกไว้ หรือโดยระงับการแจ้งเตือนทั้งหมดสําหรับเวิร์กบุ๊ก

ข้อมูลเพิ่มเติม

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

  1. เริ่ม Excel แล้วเปิดเวิร์กบุ๊กใหม่

  2. กด ALT+F11 เพื่อเริ่มตัวแก้ไข Visual Basic

  3. บนเมนู แทรก ให้คลิก มอดู

  4. พิมพ์ตัวอย่างโค้ดแมโครลงในแผ่นงานมอดูล

  5. กด ALT+F11 เพื่อกลับไปยัง Excel

  6. ใน Microsoft Office Excel 2003 และ Excel เวอร์ชันก่อนหน้า ให้เลือก แมโคร จากเมนู เครื่องมือ แล้วคลิก แมโครใน Microsoft Office Excel 2007 ให้คลิก แมโคร ในกลุ่ม โค้ด บนแท็บ นักพัฒนา ถ้าแท็บ นักพัฒนา ไม่พร้อมใช้งาน ให้ลองทําดังนี้:     a. คลิก ปุ่ม Microsoft Office แล้วคลิก ตัวเลือกของ Excelb. ในประเภท ยอดนิยม ภายใต้ ตัวเลือกยอดนิยมสําหรับการทํางานกับ Excel ให้คลิกเพื่อเลือกแสดง         แท็บ นักพัฒนา ในกล่องกาเครื่องหมาย Ribbon แล้วคลิก ตกลง

  7. เลือกแมโครที่คุณต้องการ แล้วคลิก เรียกใช้

คุณสมบัติ บันทึก จะส่งกลับค่า เท็จ ถ้ามีการเปลี่ยนแปลงเวิร์กบุ๊กตั้งแต่ถูกบันทึกครั้งล่าสุดคุณสามารถใช้ชื่อ 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

กระบวนการย่อยนี้จะตรวจสอบเพื่อดูว่าคุณสมบัติ ไฟล์ที่บันทึกไว้ ถูกตั้งค่าเป็น เท็จ หรือไม่ ถ้าเป็นเช่นนั้น เวิร์กบุ๊กได้ถูกเปลี่ยนแปลงตั้งแต่บันทึกครั้งล่าสุด และการเปลี่ยนแปลงเหล่านั้นจะถูกบันทึก

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ