Microsoft Excel是Microsoft為使用Windows和Apple Macintosh操作系統(tǒng)的電腦編寫的一款電子表格軟件。直觀的界面、出色的計(jì)算功能和圖表工具,再加上成功的市場(chǎng)營(yíng)銷,使Excel成為最流行的個(gè)人計(jì)算機(jī)數(shù)據(jù)處理軟件。 我們前面講了怎樣去除 VBA 窗體的關(guān)閉按鈕,其實(shí)個(gè)人感覺沒有這個(gè)關(guān)閉按鈕會(huì)使整個(gè)窗體感覺有點(diǎn)怪,但有時(shí)候又想讓他不可用,變得不可點(diǎn)擊,那該怎么實(shí)現(xiàn)呢? 好,我們馬上就來試一試看看。 
操作如下: ?在Excel 的VBE窗口中插入一個(gè)用戶窗體,將其命名為 frmNotEnabledCloseIcon。然后再添加一個(gè)模塊。在窗體和模塊中添加后面所列代碼。 ?在工作薄中的工作表中添加一窗體按鈕控件,指定其設(shè)置宏 ShowNotEnabledCloseIconForm, 其供示范之用. 具體代碼: "frmNotEnabledCloseIcon" 窗體代碼 Option Explicit '**************************************** '---此模塊演示了禁用窗體關(guān)閉按鈕--- '**************************************** '以下聲明API函數(shù) #If Win64 Then '64位 '查找窗口 Private Declare PtrSafe Function FindWindow _ Lib "user32" _ Alias "FindWindowA" ( _ ByVal lpClassName As String, _ ByVal lpWindowName As String) _ As LongPtr '取得窗體系統(tǒng)菜單 Private Declare PtrSafe Function GetSystemMenu _ Lib "user32" ( _ ByVal hwnd As LongPtr, _ ByVal bRevert As Long) _ As LongPtr '刪除菜單項(xiàng) Private Declare PtrSafe Function DeleteMenu _ Lib "user32" ( _ ByVal hMenu As LongPtr, _ ByVal nPosition As Long, _ ByVal wFlags As Long) _ As Long '重繪窗體標(biāo)題欄 Private Declare PtrSafe Function DrawMenuBar _ Lib "user32" ( _ ByVal hwnd As LongPtr) _ As Long #Else '32位 '查找窗口 Private Declare Function FindWindow _ Lib "User32" _ Alias "FindWindowA" ( _ ByVal lpClassName As String, _ ByVal lpWindowName As String) _ As Long '取得窗體系統(tǒng)菜單 Private Declare Function GetSystemMenu _ Lib "User32" ( _ ByVal Hwnd As Long, _ ByVal bRevert As Long) _ As Long '刪除菜單項(xiàng) Private Declare Function DeleteMenu _ Lib "User32" ( _ ByVal HMenu As Long, _ ByVal nPosition As Long, _ ByVal wFlags As Long) _ As Long '重繪窗體標(biāo)題欄 Private Declare Function DrawMenuBar _ Lib "User32" ( _ ByVal Hwnd As Long) _ As Long #End If '以下定義常數(shù) Private Const MF_BYCOMMAND = &H0& Private Const SC_CLOSE = &HF060 '以下下定義變量 #If Win64 Then '64位 Private FHwnd As LongPtr Private hMenu As LongPtr #Else Private FHwnd As Long Private hMenu As Long #End If '關(guān)閉按鈕點(diǎn)擊 Private Sub BtCancel_Click() Unload Me End Sub '恢復(fù)按鈕點(diǎn)擊 Private Sub BtResume_Click() '恢復(fù)原菜單 hMenu = GetSystemMenu(FHwnd, 1) '重繪窗體標(biāo)題欄 DrawMenuBar FHwnd End Sub '************************************** '---------------主程序----------------- '************************************** Private Sub UserForm_Initialize() '查找窗口句柄 FHwnd = FindWindow("ThunderDFrame", Me.Caption) '取得窗體系統(tǒng)菜單 hMenu = GetSystemMenu(FHwnd, 0) '刪除系統(tǒng)菜單中關(guān)閉菜單 DeleteMenu hMenu, SC_CLOSE, MF_BYCOMMAND '重繪窗體標(biāo)題欄 DrawMenuBar FHwnd End Sub "mdNotEnabledCloseIcon" 模塊代碼 Option Explicit' 此過程為工作表內(nèi)按鈕調(diào)用 Sub ShowNotEnabledCloseIconForm() frmNotEnabledCloseIcon.Show End Sub 1文件名稱 | 1下載鏈接 | 1禁用窗體關(guān)閉按鈕.zip | http://pan.baidu.com/s/1ntG6Odj |
Excel整體界面趨于平面化,顯得清新簡(jiǎn)潔。流暢的動(dòng)畫和平滑的過渡,帶來不同以往的使用體驗(yàn)。 |