ปัญหาหนึ่งซึ่งเกิดกับทุกคนที่ต้องแบ่งกันใช้เครื่องคอมพิวเตอร์เครื่องเดียวกันทำงาน มักพบว่า เมื่อเปิดโปรแกรม Excel ขึ้นมาแต่ละครั้ง จะพบหน้าตาของเมนู หรือสภาพพื้นที่ของแฟ้มแรกว่างๆที่เห็นบนหน้าจอ ชอบเปลี่ยนตำแหน่งหน้าตาแตกต่างไปจากเดิมที่ตนเคยใช้ เพราะเพื่อนคนที่ใช้ Excel คราวก่อน อาจปรับตำแหน่งเมนู และระบบต่างๆของ Excel ให้ถูกใจตน ... แต่ไม่ถูกใจคนอื่นเขา
ดังนั้นแทนที่จะต้องเสียเวลาปรับระบบของ Excel ให้ถูกใจ เรามาใช้ Macro Recorder บันทึกรหัสเพื่อทำหน้าที่ปรับระบบให้ทันทีเมื่อเปิดแฟ้มขึ้นมาดีกว่า พอเปิดแฟ้มขึ้นมา ก็ให้ระบบปรับตัวเองทันที และเมื่อปิดแฟ้มก็ให้ปรับระบบกลับสู่สภาพแรกสุด เหมือนสมัยที่เพิ่งเปิดใช้ Excel เป็นครั้งแรก
วิธีใช้ Macro Recorder ต่อไปนี้ มีข้อสำคัญอยู่ที่ชื่อของ Macro ว่าต้องตั้งชื่อว่า Auto_Open และ Auto_Close เท่านั้น ห้ามตั้งชื่อเป็นอย่างอื่น โดย Auto_Open จะถูกสั่งให้ทำงานเองทันทีเมื่อแฟ้มที่เก็บรหัสนี้ถูกเปิดขึ้น และ Auto_Close จะถูกสั่งให้ทำงานทันทีเมื่อแฟ้มที่เก็บรหัสนี้ถูกสั่งปิด
ก่อนที่จะเริ่มบันทึก Macro อย่าลืมปรับระบบ Excel ให้เป็นตรงกันข้ามกับที่ต้องการไว้ก่อน เพราะระหว่างการบันทึก Macro นั้น เราจะได้เห็นว่าคำสั่งที่ต้องการนั้นถูกเลือกจริง และ Macro Recorder จะสร้างรหัสตาม
ขั้นตอนการบันทึก Macro ชื่อ Auto_Open
สมมติ เราต้องการปรับหน้าจอของแฟ้มที่เปิดขึ้นมาให้ดูเหมือนกระดาษทำการ หาทางทำให้ไม่มีลักษณะใดที่จะบ่งบอกว่าเป็นตารางพื้นที่ Worksheet ทั้งนี้อาจใช้กับการเสนอผลงาน Presentation หรือใช้กับงานทั่วไปที่ต้องการปิดบังไม่ให้ผู้ใช้ Excel สงสัยหรือรู้ว่า หน้าจอที่เปิดขึ้นนั้นเป็นตาราง Excel
(หลักการใช้ Excel ที่ดี เมื่อสร้างงานเสร็จแล้ว ควรปรับสภาพหน้าจอให้ดูเหมือนกระดาษ เพื่อทำให้ผู้ใช้งานรู้สึกเหมือนว่า ตนกำลังทำงานอยู่บนหน้ากระดาษที่ตนเองคุ้นเคย ไม่ใช่ตาราง Excel เพื่อทำให้ผู้ใช้เกิดความสบายใจมากขึ้น)
เริ่มต้นบันทึก Macro โดยกำหนดชื่อ Macro Name : Auto_Open และเลือกใช้ Ctrl+q หรือใช้ปุ่มอื่นก็ได้เป็น Shortcut Key แล้วบันทึกขั้นตอนคำสั่งต่อไปนี้
- สั่ง Formulas > Calculation Options > กาช่อง Manual
- สั่ง View > ตัดกาช่อง Gridlines เพื่อตัดเส้นตาราง
- สั่ง View > ตัดกาช่อง Headings เพื่อตัดหัวตารางที่บอกว่าเป็น row และ column ใด
- สั่ง View > ตัดกาช่อง Formula Bar เพื่อช่องใส่สูตร
- สั่ง View > Full Screen เพื่อตัดเมนูทิ้ง ขยายพื้นที่แสดงตาราง
- กดปุ่ม Esc เพื่อย้อนกลับมาสู่จอตามขนาดเดิมจะได้กดปุ่ม Stop ได้
ในชุดคำสั่งที่เกิดขึ้น ให้ตัดคำสั่งสุดท้ายทิ้งโดยทำให้เป็น Comment
Sub Auto_Open()
'
' Auto_Open Macro
'
' Keyboard Shortcut: Ctrl+q
'
Application.Calculation = xlManual
Application.DisplayFormulaBar = False
ActiveWindow.DisplayHeadings = False
ActiveWindow.DisplayGridlines = False
Application.DisplayFullScreen = True
‘ Application.DisplayFullScreen = False กำหนดคำสั่งนี้ให้เป็น comment
End Sub
เมื่อสั่งให้ Auto_Open ทำงาน จะปรับระบบการคำนวณเป็น Manual และหน้าจอให้ดูเหมือนกระดาษ
ขั้นตอนการบันทึก Macro ชื่อ Auto_Close
ขั้นตอนที่ใช้บันทึก Macro ในชื่อ Auto_Close นั้น จำง่ายๆว่า ทำตามขั้นตอนของ Auto_Open เพียงแต่ให้ทำตรงกันข้ามให้หมด (หรือจะเพิ่มคำสั่งอื่นก็ได้ที่เห็นว่า ควรปรับระบบของ Excel ให้เหมาะกับงานทั่วไป)
ก่อนจะเริ่มบันทึก Macro ให้กดปุ่ม Esc เพื่อแสดงเมนูให้เห็น เมื่อบันทึกให้กำหนดชื่อ Macro Name : Auto_Close และเลือกใช้ Ctrl+w หรือใช้ปุ่มอื่นก็ได้เป็น Shortcut Key แล้วบันทึกขั้นตอนคำสั่งต่อไปนี้
- สั่ง Formulas > Calculation Options > กาช่อง Automatic
- สั่ง View > กาช่อง Gridlines เพื่อตัดเส้นตาราง
- สั่ง View > กาช่อง Headings เพื่อตัดหัวตารางที่บอกว่าเป็น row และ column ใด
- สั่ง View > กาช่อง Formula Bar เพื่อช่องใส่สูตร
ให้แก้ชุดคำสั่งที่เกิดขึ้น โดยลอกคำสั่ง Application.DisplayFullScreen = False มาใส่เพิ่ม
Sub Auto_Close()
'
' Auto_Close Macro
'
' Keyboard Shortcut: Ctrl+w
'
Application.DisplayFullScreen = False ‘ลอกมาใส่เพิ่ม
Application.Calculation = xlAutomatic
Application.DisplayFormulaBar = True
ActiveWindow.DisplayHeadings = True
ActiveWindow.DisplayGridlines = True
End Sub
เมื่อสั่งให้ Auto_Close ทำงาน จะปรับระบบการคำนวณเป็น Automatic และหน้าจอกลับสู่สภาพเดิม
ทดลองแก้ไขรหัสให้ทำงานกลับไปกลับมาทุกครั้งที่สั่งให้ทำงาน
ขอให้สังเกตรหัสที่ได้จากการบันทึก Macro ข้างต้น จะเห็นว่าใช้คำสั่งให้เท่ากับ True หรือ False เพื่อสั่งให้ทำหรือไม่ทำตาม ซึ่งหมายถึงสั่งให้ทำตรงกันข้ามกับสถานะเดิม ดังนั้นเราจึงสามารถใช้รหัสคำสั่งต่อไปนี้ เพื่อปรับการแสดง Full Screen ให้กลับไปซ่อนเมนูแล้วกลับมาตามเดิมได้ โดยใช้คำสั่งบรรทัดเดียวและใช้รหัส NOT ช่วยให้ทำงานกลับกัน ดังนี้
Sub ReverseFullScreen()
Application.DisplayFullScreen = Not Application.DisplayFullScreen
End Sub
ทุกครั้งที่รหัสคำสั่งชุดนี้ทำงาน จะปรับหน้าจอให้ตรงกันข้ามกับสถานะเดิม เช่น ถ้าเดิมไม่ได้เป็น Full Screen พอใช้คำสั่งนี้จะกลายเป็น Full Screen แต่ถ้าสั่งซ้ำอีกครั้งจะกลับเป็นสภาพเดิมที่ไม่ได้เป็น Full Screen