Page 1 of 1

VBA ป้องกันการลบ worksheet ครับ

Posted: Thu Mar 20, 2014 1:21 pm
by DhitiBank
อาจารย์ครับ
ผมต้องการเขียนโค้ดป้องกันผู้ใช้งานเผลอลบแผ่นงานโดยบังเอิญ ลองเอาโค้ดปิดเมนูเวลาคลิกขวาที่แท็บชีทของอาจารย์มาใช้ดู ได้ผลดีครับ (โค้ดตามด้านล่าง) แต่เมนูลบชีทที่ ribbon ยังสามารถเข้าถึงได้ ควรปรับโค้ดอย่างไรดีครับ เพื่อป้องกันการลบชีทโดยเลือกเมนูจากริบบอนด้วย

ที่ ThisWorkbook คีย์โค้ด

Code: Select all

Private Sub Workbook_Open()
   Sheets("Sheet1").Select
   Call DisableCommandBars
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call EnableCommandBars
End Sub
ที่ Module ปกติ คีย์

Code: Select all

Sub DisableCommandBars()
    Dim Cbar As CommandBar
    For Each Cbar In Application.CommandBars
        Cbar.Enabled = False
    Next
End Sub

Sub EnableCommandBars()
    Dim Cbar As CommandBar
    For Each Cbar In Application.CommandBars
        Cbar.Enabled = True
    Next
End Sub
ผมใช้ Microsoft Excel 2010 ครับ

ขอบคุณมากครับ

Re: VBA ป้องกันการลบ worksheet ครับ

Posted: Thu Mar 20, 2014 6:50 pm
by snasui
:D การจัดการกับเมนูบน Ribbon ไม่สามารถใช้แต่เพียงลำพัง VBA ได้ครับ Code นั้นเป็น Code ที่จัดการกับ Excel 2003 ลงไปครับ

ตัวอย่างการจัดการกับ Ribbon ครับ http://www.mrexcel.com/forum/excel-ques ... -code.html

Re: VBA ป้องกันการลบ worksheet ครับ

Posted: Fri Mar 21, 2014 12:03 am
by DhitiBank
ขอบคุณมากครับอาจารย์ :o

ลองดูแล้วพูดได้คำเดียวว่า...ช็อก...ครับ งงเป็นที่ยิ่ง ถ้าอย่างนั้นผมจะกำชับพนักงานให้ระวังแทนครับ อย่าใช้งานไฟล์นอกเหนือจากที่ออกแบบไว้ให้ :shock:

Re: VBA ป้องกันการลบ worksheet ครับ

Posted: Sat Mar 22, 2014 1:34 pm
by DhitiBank
อาจารย์ครับ รบกวนถามเรื่องป้องกันการลบชีทต่อครับ

คือผมลองมั่ว เล่นเมนู Protect workbook ปรากฎว่ามันซ่อนเมนูการลบชีทไว้ได้ แต่ว่ามันจะมีผลต่อการทำงานในชีทตามปกติหรือเปล่าครับ อย่างเช่น จะจำกัดการทำงานบางอย่าง ฯลฯ

ผมลอง Protect workbook (ติ๊กที่ Structure) แล้วลองใช้งานดูยังไม่เจอปัญหา แต่ไม่แน่ใจว่าจะมีข้อจำกัดอื่นใดหรือเปล่าครับ

Re: VBA ป้องกันการลบ worksheet ครับ

Posted: Sat Mar 22, 2014 3:06 pm
by snasui
:D การป้องกัน Structure ก็ตรงตัวอยู่แล้วคือป้องกันโครงสร้าง ข้อจำกัดก็เห็นได้ชัดจากเมนูที่เป็นสีเทาครับ

Re: VBA ป้องกันการลบ worksheet ครับ

Posted: Sat Mar 22, 2014 8:33 pm
by DhitiBank
ขอบพระคุณครับ คราวนี้ก็สบายใจแล้ว