Vô hiệu hoá Security...

  • Thread starter Thread starter NH_DK
  • Ngày gửi Ngày gửi
Liên hệ QC

NH_DK

Let's patience
Tham gia
29/7/10
Bài viết
865
Được thích
1,203
Nghề nghiệp
Kế toán
Em muốn vô hiệu hoá Security... trong Tools\Marco? AC thiết lập dùm em code nhé!
 
Em muốn vô hiệu hoá Security... trong Tools\Marco? AC thiết lập dùm em code nhé!
Thử vầy xem:
PHP:
Sub DisableSecurity()
  Dim Item As CommandBarControl
  For Each Item In Application.CommandBars(1).Controls("Tools").Controls("Macro").Controls
    If Item.Caption = "&Security..." Then Item.Enabled = False
  Next
  Application.CommandBars.FindControl(ID:=3627).Enabled = False
End Sub
 
Upvote 0
Thử vầy xem:
PHP:
Sub DisableSecurity()
  Dim Item As CommandBarControl
  For Each Item In Application.CommandBars(1).Controls("Tools").Controls("Macro").Controls
    If Item.Caption = "&Security..." Then Item.Enabled = False
  Next
  Application.CommandBars.FindControl(ID:=3627).Enabled = False
End Sub
Cám ơn sư phụ nhiều! Nhưng cho em hỏi thêm nhé! Đối với Office 2007 và 2010 sao lại không có tác dụng?
 
Lần chỉnh sửa cuối:
Upvote 0
Đoạn code này có thể thay đổi Level của Security dù đang để ở mức cao, nhưng phải nằm trong file add-ins (xla), và phải khởi động lại Excel:
Mã:
Sub Set_Security()
    Dim obj, iLevel
    Set obj = CreateObject("WScript.Shell")
    iLevel = obj.RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\11.0\Excel\Security\Level")
    If iLevel > 1 Then
        obj.RegWrite "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\[B][COLOR=#ff0000]11.0[/COLOR][/B]\Excel\Security\Level", [B][COLOR=#ff0000]1[/COLOR][/B], "REG_DWORD"
        MsgBox "Vi ly do ky thuat, chuong trinh phai tam thoat, Ban vui long mo lai!"
        Application.DisplayAlerts = False
        Application.Quit
    End If
End Sub
Có thể thay đổi Version của Excel và cấp độ của Security tuỳ ý.
 
Upvote 0
Đoạn code này có thể thay đổi Level của Security dù đang để ở mức cao, nhưng phải nằm trong file add-ins (xla), và phải khởi động lại Excel:
Mã:
Sub Set_Security()
    Dim obj, iLevel
    Set obj = CreateObject("WScript.Shell")
    iLevel = obj.RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\11.0\Excel\Security\Level")
    If iLevel > 1 Then
        obj.RegWrite "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\[B][COLOR=#ff0000]11.0[/COLOR][/B]\Excel\Security\Level", [B][COLOR=#ff0000]1[/COLOR][/B], "REG_DWORD"
        MsgBox "Vi ly do ky thuat, chuong trinh phai tam thoat, Ban vui long mo lai!"
        Application.DisplayAlerts = False
        Application.Quit
    End If
End Sub
Có thể thay đổi Version của Excel và cấp độ của Security tuỳ ý.
Mình không hiểu code này thay đổi level trong Security... như thế nào? Bạn nói rõ hơn? Mình đã tạo 1 file add-in rùi nè...
 

File đính kèm

Upvote 0
Trong code trên, biến iLevel cho ta cấp độ Level của Security. Level có các cấp độ 1,2,3,4 tương ứng với cấp độ Low, Medium, High và Very High của Security. Bạn chọn Security Level bằng tay rồi thí nghiệm với câu Msgbox iLevel là thấy.

Câu lệnh
obj.RegWrite "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\11.0\Excel\Security\Level", 1, "REG_DWORD"
sẽ điều chỉnh Security Level trong Regedit tùy thuộc vào số 1 hoặc 2 hoặc 3 hoặc 4 (màu đỏ ở trên). Số 11.0 chỉ phiên bản Ex, Bạn thử xem, mình không dùng 2007.
 
Upvote 0
Trong code trên, biến iLevel cho ta cấp độ Level của Security. Level có các cấp độ 1,2,3,4 tương ứng với cấp độ Low, Medium, High và Very High của Security. Bạn chọn Security Level bằng tay rồi thí nghiệm với câu Msgbox iLevel là thấy.

Câu lệnh
obj.RegWrite "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\11.0\Excel\Security\Level", 1, "REG_DWORD"
sẽ điều chỉnh Security Level trong Regedit tùy thuộc vào số 1 hoặc 2 hoặc 3 hoặc 4 (màu đỏ ở trên). Số 11.0 chỉ phiên bản Ex, Bạn thử xem, mình không dùng 2007.
Mình đã làm rùi nhưng không thành công. Bạn tạo lại cho mình 1 add-in dùng cho office 2003 (mức Low) nhé! Cám ơn bạn nhiều!
 
Upvote 0
Mình đã làm rùi nhưng không thành công. Bạn tạo lại cho mình 1 add-in dùng cho office 2003 (mức Low) nhé! Cám ơn bạn nhiều!
Bạn muốn nó tự chạy khi khởi động Excel thì Bạn phải gọi nó từ Sub Auto_Open hoặc đổi tên thủ tục trên thành Sub Auto_Open và phải được chọn trước trong mục Tools\Add-ins.. của Excel.
Thủ tục sau để chạy trên mọi phiên bản Excel (trên lý thuyết thôi, vì mình mới thử trên Excel 2003):
Mã:
Sub Auto_Open()
    Dim obj, iLevel, iVersion
    iVersion = Application.Version
    Set obj = CreateObject("WScript.Shell")
    iLevel = obj.RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\" & iVersion & "\Excel\Security\Level")
    If iLevel > 1 Then
        obj.RegWrite "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\" & iVersion & "\Excel\Security\Level", 1, "REG_DWORD"
        MsgBox "Vi ly do ky thuat, chuong trinh phai tam thoat, Ban vui long mo lai!"
        Application.DisplayAlerts = False
        Application.Quit
    End If
End Sub
Bạn giải nén file, mở Excel, Add file này vào mục Add-Ins, chọn Security ở mức khác với mức Low, tắt Excel, mở lại xem.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Nhân tiện bàn đến việc vô hiệu hóa thiết lập Macro, em xin hỏi thêm: Em muốn vô hiệu hóa Marco Security của Office 2007 và 2010?
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom