- 帖子
- 50
- 主題
- 8
- 精華
- 0
- 積分
- 66
- 點名
- 0
- 作業系統
- WIN7
- 軟體版本
- OFFICE 2013
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2015-2-3
- 最後登錄
- 2024-12-3
|
禁用VBE編輯窗口
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
vbewin = False
End Sub
Private Sub Workbook_Open()
'檔案開啟前先關閉VBE視窗(如果VBE視窗已開啟)
If Application.VBE.MainWindow.Visible Then
Application.VBE.CommandBars.FindControl(ID:=752).Execute
End If
vbewin = True
VBEwindow
End Sub
'-----------------------------------------------------------------
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
hwnd = GetActiveWindow
'取得當前視窗類別名稱
L = GetClassName(hwnd, WText, L)
WText = Left(WText, L)
'VBE視窗的類別名稱為:wndclass_desked_gsk
If WText = "wndclass_desked_gsk" Then
MsgBox "已偵測到VBE視窗開啟,VBE視窗將自行關閉"
'關閉VBE視窗
Application.VBE.CommandBars.FindControl(ID:=752).Execute
End If
End Sub
'----------------------------------------------------------------------------------------------
說明:
Excel 視窗的 ClassName="XLMAIN"
Application.VBE.CommandBars.FindControl(ID:=752)就是VBE視窗中的 檔案=>關閉並回到 MicrosoftExcel
VBE 視窗的 ClassName="wndclass_desked_gsk"
UserForm 視窗的 ClassName="" ThunderDFrame",如果是Excel 97版(含)以後的則為 ClassName="ThunderXFrame"
在網路上找到這個教學
但不知是不是版本問題
我試過了
結果變成全部的功能鍵全都被禁止了,只剩下儲存格可以使用。
有沒有高手願意出手相助,看一下是那一段程式碼須修改的呢?
小弟使用的是 office 2013 32位元 |
|