Excel ติดรหัสผ่าน หรือ password แก้ไขไม่ได้เลย จะทำอย่างไรดีนะ? เวลามีคนถามปัญหานี้ทีไร สองจิตสองใจว่าควรจะบอกยังไงดี? คือ ก็ไม่แน่ใจว่า ที่ติดรหัสผ่านไว้นั้นเพราะผู้เขียนไม่อยากให้แก้ไขหรือเปล่า? หรือ excel นั้นอาจจะเป็นสินค้าที่มีการซื้อขายกัน ผู้เขียนจึงใส่รหัสผ่านป้องกันคนขโมยสูตรไปขายหรือเปล่า? หรือสูตรนั้นอาจจะมีความลับขององค์กรอยู่เลยจำเป็นต้องใส่รหัสผ่านไว้
ต้องแนะนำว่า การแก้ไขไฟล์งาน ควรจะเป็น เจ้าของงานนั้น หรือเป็นไฟล์ที่เจ้าของหรือผู้เขียนอนุญาตให้แก้ไขดัดแปลง ความจริงควรติดต่อผู้สร้างไฟล์นั้นโดยตรงเพื่อให้ความเข้าใจอันดีระหว่างกัน
ครั้งนี้ จะสมมติว่า เราเขียนไฟล์ไว้นานแล้ว แต่เราดันล็อชีตไว้ไม่ให้คนอื่นแก้ไข แล้วเราเองกลับลืมรหัสผ่าน เอาไงดี? คือต้องแยกก่อนว่า การป้องกันไฟล์มีสองแบบ แบบแรกคือ ห้ามเปิดไฟล์ ถ้าไม่ใส่รหัสผ่าน กับอีกแบบหนึ่ง เปิดไฟล์ได้ แต่ตั้งค่า protect sheet เอาไว้ ซึ่งเป็นกรณีที่กำลังเขียนถึงอยู่นี้ หากเป็นกรณีแรก แนะนำให้ใช้ โปรแกรมสำหรับเปิดไฟล์ excel หรือถอดรหัสได้ (โดยจ่ายเงิน) ซึ่งค้นหาได้จากกูเกิล เช่น โดยใช้คีย์เวิร์ดว่า Excel Password Recovery อย่างเช่นโปรแกรม Dr.Excel เป็นต้น
Excel ติดรหัสผ่าน เป็นเวอร์ชันก่อนหน้า 2013
ถ้าเป็น Excel เวอร์ชันเก่า ที่เป็นไฟล์นามสกุล xls ก่อนหน้าเวอร์ชัน 2013 เราอาจจะใช้วิธี “ขี้โกง” โดย ลบการใส่ password ไปเลย โดยเราจะทำแบบนี้
- แก้ไขนามสกุลไฟล์ จาก xls เป็น zip ใช้วิธี คลิกขวา rename ถ้าตั้งค่าใน explorer ไม่ให้แสดงนามสกุลไฟล์ ให้ตั้งค่าให้แสดงก่อนนะจ๊ะ เพื่อความสะดวกรวดเร็ว
- กด เข้าไฟล์ zip แล้วหาโฟลเดอร์ worksheets กดเข้าไปดูไฟล์ XML เปิดไฟล์นั้นขึ้นมา แล้วใช้ find หา sheetProtection ลบ Tag นั้นทั้งหมด เซฟ และกลับมาที่ไฟล์ Zip
- แก้ไขนามสกุลไฟล์ จาก zip กลับเป็น xls เหมือนเดิม
เท่านี้ก็น่าจะได้ อันนี้ไม่มีตัวอย่างให้ดู เพราะจะต้องเป็นไฟล์ที่เกิดจาก excel เวอร์ชันเก่า หากเป็นเวอร์ชันใหม่ตั้งแต่ 2013 เป็นต้นมา ทาง Excel เปลี่ยนโครงสร้างไฟล์ไปแล้ว
แก้ปัญหา Excel ติดรหัสผ่าน ด้วย VBA
สำหรับเวอร์ชันตั้งแต่ 2013 เป็นต้นมา ยกตัวอย่างนี้ เป็น file excel ที่ได้ protect สูตรการคำนวณไว้ ต้องใส่รหัสผ่านเพื่อดูหรือแก้ไขสูตร เราจะไม่สามารถแก้ไข ขยับ หรือดูอะไรใน sheet นี้ได้เลย ถ้าเราคลิกขวาเลือก unprotect ก็จะขอให้ใส่รหัสผ่าน
แนวคิดจะมีอยู่สองทาง คือ เลี่ยงการตรวจสอบรหัสผ่าน กับ ถอดรหัสผ่านของ Excel ซึ่งวิธีที่อาจจะง่ายที่สุดคือการเลี่ยงการตรวจสอบรหัสผ่าน วิธีการคือ กด Alt-F11 เพื่อเรียกหน้าต่าง VBA Editor ขึ้นมา แล้วกด insert Module พิมพ์คำสั่งดังนี้
แนวคิดนี้ ได้มาจาก http://chicago.sourceforge.net/devel/docs/excel/encrypt.html
และ ท่านสามารถ ดาวน์โหลดตัวอย่างไฟล์ได้จาก https://www.straxx.com/free-excel-password-remover-2012/
Sub BreakPassword()
Dim i As Integer, j As Integer, k As Integer
Dim l As Integer, m As Integer, n As Integer
Dim i1 As Integer, i2 As Integer, i3 As Integer
Dim i4 As Integer, i5 As Integer, i6 As Integer
On Error Resume Next
For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _
Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
If ActiveSheet.ProtectContents = False Then
Exit Sub
End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
End Sub
อ่านเพิ่มเติม สำหรับคำสั่งเกี่ยวกับ Active.Unprotect
อ่านเพิ่มเติมสำหรับการอ้างอิงอักขระ
เมื่อพิมพ์เสร็จ กด F5 หรือกดปุ่ม Run
หากไม่มีอะไรผิดพลาด ก็จะ unprotect แล้ว