禁止打开Excel VBE窗口

时间 : 15-02-20 栏目 : 案例专题 作者 : 战战如疯 评论 : 0 点击 : 3,404 次

除非注明,文章均为 战战如疯 原创,转载请保留链接: http://www.zhanzhanrufeng.com/cat4/634.html,VBA交流群273624828。

后来仔细想了想该方法并没有所谓的防止查看和修改代码的作用,因为只要限制了宏功能或者不信任对VBA工程对象模型的访问就可以限制该功能从而打开VBE窗口。

禁止打开VBE窗口,可以防止查看和修改代码

运行机理:在打开事件中添加windows监视,一旦VBE打开,就运行VBEwindow过程,并调用CheckVBE_Event过程强制关闭VBE

Thisworkbook模块代码

Private Sub Workbook_BeforeClose(Cancel As Boolean)

    vbewin = False

End Sub                                                                  

Private Sub Workbook_Open()

    vbewin = True

VBEwindow

End Sub                                                                   

Modul模块代码

Public Declare Function GetActiveWindow Lib "user32" () As Long  

Public Declare Function GetClassName Lib "user32" Alias "GetClassNameA"  _

(ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long

Public vbewin As Boolean

Sub VBEwindow()

Do While vbewin

   DoEvents

       Call CheckVBE_Event

    Loop

End Sub                                                                     

Sub CheckVBE_Event()

  Dim hwnd As Long

    Dim WText As String

    Dim L As Long: L = 255

    WText = String(255, " ")

    hwnd = GetActiveWindow

    L = GetClassName(hwnd, WText, L)

    WText = Left(WText, L)

If WText = "wndclass_desked_gsk" Then 

  Application.VBE.CommandBars.FindControl(ID:=752).Execute 

    End If

End Sub  

转发自新浪微博http://blog.sina.com.cn/s/blog_3e1363140100i72s.html



2017年二月
« 七    
 12345
6789101112
13141516171819
20212223242526
2728  

联系博主

咨询,程序开发,友链交换请联系博主 QQ:449217002
VBA QQ群:273624828

注意!复制代码请用Ctrl+C!

相关文章



无觅相关文章插件,快速提升流量

0