Microsoft Excel是Microsoft為使用Windows和Apple Macintosh操作系統(tǒng)的電腦編寫的一款電子表格軟件。直觀的界面、出色的計(jì)算功能和圖表工具,再加上成功的市場(chǎng)營銷,使Excel成為最流行的個(gè)人計(jì)算機(jī)數(shù)據(jù)處理軟件。 VBA的窗體缺少一般窗體的很多屬性,不想許多語言窗體那樣可以自由的設(shè)置窗體的樣式,就連其默認(rèn)的關(guān)閉按鈕也不能設(shè)置為不顯示,一般的處理方法是在窗體的關(guān)閉事件中添加代碼來阻止窗體的關(guān)閉。那還不如就直接運(yùn)用代碼來把他去除掉(如圖)。 
附件下載: 點(diǎn)擊鏈接從百度網(wǎng)盤下載 操作如下: ?在Excel的VBE窗口中插入一個(gè)用戶窗體,將其命名為frmNoCloseIcon。然后再添加一個(gè)模塊。在窗體和模塊中添加后面所列代碼。 ?在工作薄中的任意工作表中添加一窗體按鈕控件,將指定其設(shè)置宏為btnShowfrmMaxMin_Click。其供示范之用。 具體代碼: "mdClose"模塊代碼 ? Sub btnShowfrmMaxMin_Click() frmNoCloseIcon.Show End Sub "frmNoCloseIcon" 窗體代碼 '**************************************** '---此模塊演示了去除窗體關(guān)閉按鈕--- '**************************************** Option Explicit '以下聲明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 Private Declare PtrSafe Function GetWindowLong _ Lib "user32" _ Alias "GetWindowLongPtrA" ( _ ByVal hwnd As LongPtr, _ ByVal nIndex As Long) _ As LongPtr Private Declare PtrSafe Function SetWindowLong _ Lib "user32" _ Alias "SetWindowLongPtrA" ( _ ByVal hwnd As LongPtr, _ ByVal nIndex As Long, _ ByVal dwNewLong As LongPtr) _ As LongPtr 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 '取得窗口樣式位 Private Declare Function GetWindowLong _ Lib "User32" _ Alias "GetWindowLongA" ( _ ByVal Hwnd As Long, _ ByVal nIndex As Long) _ As Long '設(shè)置窗口樣式位 Private Declare Function SetWindowLong _ Lib "User32" _ Alias "SetWindowLongA" ( _ ByVal Hwnd As Long, _ ByVal nIndex As Long, _ ByVal dwNewLong As Long) _ As Long '重繪窗體標(biāo)題欄 Private Declare Function DrawMenuBar _ Lib "User32" ( _ ByVal Hwnd As Long) _ As Long #End If #If Win64 Then '64位 Private FHwnd As LongPtr Private FIstype As LongPtr #Else Private FHwnd As Long Private FIstype As Long #End If '以下定義常數(shù) Private Const GWL_STYLE = (-16) '窗口樣式 Private Const WS_SYSMENU = &H80000 '系統(tǒng)菜單 Private Sub btnClose_Click() Unload Me End Sub Private Sub btnReset_Click() '取得窗口樣式位 FIstype = GetWindowLong(FHwnd, GWL_STYLE) '窗體樣式位: 原樣式和系統(tǒng)菜單 FIstype = FIstype Or WS_SYSMENU '重設(shè)窗體樣式位 SetWindowLong FHwnd, GWL_STYLE, FIstype '重繪窗體標(biāo)題欄 DrawMenuBar FHwnd End Sub '************************************** '---------------主程序----------------- '************************************** Private Sub UserForm_Initialize() '查找窗口句柄 FHwnd = FindWindow("ThunderDFrame", Me.Caption) '取得窗口樣式位 FIstype = GetWindowLong(FHwnd, GWL_STYLE) '窗體樣式位: 原樣式和無系統(tǒng)菜單 FIstype = FIstype And Not WS_SYSMENU '重設(shè)窗體樣式位 SetWindowLong FHwnd, GWL_STYLE, FIstype '重繪窗體標(biāo)題欄 DrawMenuBar FHwnd End Sub
Excel整體界面趨于平面化,顯得清新簡(jiǎn)潔。流暢的動(dòng)畫和平滑的過渡,帶來不同以往的使用體驗(yàn)。 |