Excel : Make macro button (VBA : Protect/Unprotect all sheets tabs)
ในการใช้งาน Excel กรณีที่มีงานที่ต้องทำซ้ำ ๆ กันบ่อย ๆ บางครั้ง เราก็จะทำ Macro ขึ้นมาเพื่อที่จะลดขั้นตอนหลาย ๆ อย่างลง แต่ Macro ที่ทำขึ้นมามันจะใช้ได้เฉพาะ Excel ที่มี Code อยู่เท่านั้นทีนี้ หากเราต้องการที่จะให้ Macro ที่เราได้ทำขึ้นมา สามารถใช้ได้กับทุก Excel และ แม้แต่ไฟล์ที่สร้างขึ้นมาใหม่ จะทำยังไง
โดยไม่ต้องมานั่ง Copy/Paste โค๊ด Macro ลงไปในไฟล์ใหม่นั้น ๆ
วันนี้ก็จะนำเสนอวิธีการสร้างปุ่มกด Macro ใน Excel ซึ่งจะทำให้เราสามารถใช้ Macro ที่เราได้ทำไว้ง่าย ๆ โดย คลิ๊กที่ปุ่มนี้เท่านั้น มาดูขั้นตอนกันเลยครับ
ในตัวอย่างนี้จะเป็น Macro การ Protect sheet ทุก sheet ใน Excel ที่เปิดอยู่ และ การ Unprotect sheet ทุก sheet ใน Excel ที่เปิดอยู่นะครับ มาดูขั้นตอนกันเลย
1. ก่อนอื่นก็ให้สร้าง Excel ไฟล์ขึ้นมา จากนั้นให้ไปที่แท๊บ "Developer" และเลือก "View Code"
Excel ก็จะเปิดหน้าต่าง "Microsoft Visual Basic for Application" ขึ้นมา
2. จากนั้นให้ คลิ๊กขวาที่ icon รูป Folder ที่ชื่อ "Microsoft Excel Objects" จากนั้นเลือก "Insert" และเลือก "Module"
ก็จะได้ Module ขึ้นมา
3. ทำการ Double click ที่ Module จากนั้น Copy code ด้านล่างนี้ไปวางไว้ใน Module
หรือใครมี Code macro ที่ตัวเองใช้อยู่ก็เอามาวางในส่วนนี้ได้ แต่ก็ต้องดูใน code ด้วยว่ามีการอ้างอิงที่ถูกต้องหรือเปล่า
ในตัวอย่างนี้จะเป็น code การล๊อค (Protect) ทุก Sheets ใน Excel ที่กำลังทำงานอยู่ และ
ส่วนของการปลดล๊อค (Unprotect) ทุก Sheets ใน Excel ที่กำลังทำงานอยู่
Code :
Sub LockAllSheets()
For n = 1 To Sheets.Count
Worksheets(n).Protect password:="159"
Next
MsgBox "All Lock OK"
End Sub
Sub UnlockAllSheet()
On Error GoTo Check_Error
Dim UNUN As String
UNUN = InputBox("กรุณาป้อนรหัสเพื่อปลดล๊อค",
"ปลดล๊อค")
If UNUN = "" Then Exit Sub
For n = 1 To Sheets.Count
Worksheets(n).Unprotect (UNUN)
Next
Exit Sub
Check_Error:
Select Case Err.Number
Case 1004
UNUN = InputBox("Password ใน Sheet
ที่
" & n & " ไม่ถูกต้อง"
& vbCrLf & "กรุณาใส่ Password ใหม่" _
& vbCrLf & "กด Cancel หรือไม่ต้องพิมพ์ Password
เพื่อยกเลิก",
"Password ผิด")
If UNUN = "" Then Exit Sub
Resume
Case Else
MsgBox Err.Number & vbCrLf & Err.Description
Exit Sub
End Select
End Sub
|
4. จากนั้นให้ทำการบันทึก Excel โดยจะบันทึกเป็น "Excel Add-In (*.xlam)"
เมื่อเลือกเป็น "Excel Add-In (*.xlam)" ตำแหน่งในการบันทึกไฟล์ก็จะเปลี่ยนเป็น "C:\Users\{User name}\AppData\Roaming\Microsoft\AddIns"
ให้ทำการตั้งชื่อ และกดบันทึกได้เลย
ในตัวอย่างนี้ตั้งชื่อไฟล์ว่า "SampleLockButton.xlam"
ต่อไปเป็นขั้นตอนการเพิ่มปุ่ม Macro ที่เราได้ทำไว้เข้าไปใน Excel นะครับ
5. ไปที่แท๊บ "Developer" แล้วคลิ๊กที่ "Add-ins" จะได้หน้าต่าง Add-ins ขึ้นมา
6. จากนั้นให้คลิ๊กที่ "Browse" แล้วเลือก Add-ins ที่เราพึ่งได้สร้างไว้ (ในที่นี้คือ "SampleLockButton.xlam")
เมื่อมีรายการที่เราเพิ่มแสดงขึ้นมา ก็กดปุ่ม OK ได้เลย
7. จากนั้นให้กลับไปที่ Excel แล้วทำการคลิ๊กขวาในที่ว้างบน Ribbon tabs แล้วเลือก "Customize the Ribbon" จะได้หน้าต่าง Excel option ในส่วนการแก้ไข Ribbon tabs ขึ้นมา
ในส่วนการเพิ่มปุ่มเข้ามา เราสามารถเพิ่มไปที่แท๊บใหนก็ได้ หรือสร้างแท๊บขึ้นมาใหม่ก็ได้
อย่างในตัวอย่างนี้ได้สร้างแท๊บขึ้นมาเพิ่ม
8. ให้ทำการเปลี่ยนตัวเลือกใน "Choose comands from:" โดยเปลี่ยนเป็น "Macros"
9. ให้ทำการเลื่อนหา Macro ที่เราได้สร้างไว้ โดยชื่อ Macro ก็จะเป็นไปตามที่เราตั้งไว้คือ LockAllSheets และ UnlockAllSheet
เมื่อเลือก Macro ที่เราสร้างไว้แล้ว ให้กด "Add > >" ตัว Macro ที่เราสร้างก็จะไปอยู่ใน Tab ด้านขวา
สามารถคลิ๊กขวาแล้วเลือก "Rename" เพื่อเปลี่ยน icon หรือ ชื่อปุ่มได้
เมื่อแก้ไขจนพอใจแล้วให้กดปุ่ม "OK"
ก็เป็นอันเสร็จสิ้นขั้นตอน ต่อไปเมื่อเปิด Excel ใหม่ หรือเปิด Excel เก่า ขึ้นมาก็จะสามารถใช้ฟังก์ชั่น Macro ที่เราได้เลยทันที
ความคิดเห็น
แสดงความคิดเห็น