ขั้นที่ 1 : ตัวอย่างนี้ต้องเปิดแฟ้มใหม่ขึ้นอีกแฟ้มหนึ่ง เพื่อใช้เก็บรหัสที่ได้จากการบันทึกการปิดแฟ้ม โดยมีขั้นตอนใช้ Recorder บันทึก ดังนี้
- คลิกเมนู View > Switch Windows > เลือกชื่อแฟ้มที่ต้องการปิด สมมติว่าชื่อ MyMonth.xls
- คลิกเมนู File > Close
จะเกิดรหัส VBA :
Windows("MyMonth.xls").Activate
ActiveWorkbook.Close
ขั้นที่ 2 : ให้ copy รหัสเฉพาะ ActiveWorkbook.Close มาสร้าง Sub Procedure ลงใน MyMonth.xls
Sub CloseMyFile()
ActiveWorkbook.Close
End Sub
เมื่อทดสอบรหัสนี้หลายๆครั้ง จะพบว่าถ้าในแฟ้มมีข้อมูลใหม่ จะมีคำเตือนเปิดขึ้นบนจอว่า คุณต้องการจัดเก็บข้อมูลที่เปลี่ยนแปลงหรือไม่
ขั้นที่ 3 : ถ้าอยากใช้คำสั่งปิดแฟ้ม โดยไม่ต้องถามเรื่องการจัดเก็บข้อมูลใหม่ คราวนี้ต้องศึกษาจาก Help โดยให้คลิกที่รหัสคำว่า Close จากนั้นกดปุ่ม F1 จะมีตัวอย่างแสดงไว้ในคำอธิบายของ Help ดังนี้
Workbooks("BOOK1.XLS").Close SaveChanges:=False
ขั้นที่ 4 : กลับไปแก้ไขรหัสเดิม โดยนำคำว่า SaveChanges:=False ไปเพิ่มต่อท้ายรหัสเดิม จะพบว่าคราวนี้ไม่มีคำเตือนเปิดขึ้นบนจอว่า คุณต้องการจัดเก็บข้อมูลที่เปลี่ยนแปลงหรือไม่
Sub CloseMyFile()
ActiveWorkbook.Close SaveChanges:=False
End Sub
หมายเหตุ : หากศึกษาคำอธิบายจาก Help จะพบว่า คำสั่ง Close นั้น สามารถเขียนอีกรูปแบบหนึ่ง คือ expression.Close(SaveChanges, Filename, RouteWorkbook) โดยใช้วงเล็บกำหนดตัวเลือกต่อๆกันไป ทำให้รหัสสั้นลงเป็น
Sub CloseMyFile()
ActiveWorkbook.Close(False)
End Sub