Microsoft Excel是Microsoft為使用Windows和Apple Macintosh操作系統(tǒng)的電腦編寫(xiě)的一款電子表格軟件。直觀(guān)的界面、出色的計(jì)算功能和圖表工具,再加上成功的市場(chǎng)營(yíng)銷(xiāo),使Excel成為最流行的個(gè)人計(jì)算機(jī)數(shù)據(jù)處理軟件。 VBA的窗體和一般的程序窗體不太一樣,一般的窗體都會(huì)有一個(gè)最大化和一個(gè)最小化按鈕,而VBA窗體卻只有一個(gè)關(guān)閉按鈕。這樣就使VBA的窗體在使用的時(shí)候會(huì)有一些不太方便,下面我們就來(lái)為它添加最大和最小化按鈕。 
附件下載: 點(diǎn)擊鏈接從百度網(wǎng)盤(pán)下載 操作如下: ?在Excel的VBE窗口中插入一個(gè)用戶(hù)窗體,將其命名為frmMaxMin。然后再添加一個(gè)模塊。在窗體和模塊中添加后面所列代碼。 ?在工作薄中的任意工作表中添加一窗體按鈕控件,將指定其設(shè)置宏為btnShowfrmMaxMin_Click。其供示范之用。 具體代碼: "ModToolsForm"模塊代碼 Sub btnShowfrmMaxMin_Click() frmMaxMin.Show End Sub "frmTools" 窗體代碼 '**************************************** '---此模塊演示了給窗體添加最大最小化按鈕--- '**************************************** 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_MAXIMIZEBOX = &H10000 '最大化按鈕 Private Const WS_MINIMIZEBOX = &H20000 '最小化按鈕 '************************************** '---------------主程序----------------- '************************************** Private Sub UserForm_Initialize() '查找窗口句柄 FHwnd = FindWindow("ThunderDFrame", Me.Caption) '取得窗口樣式位 FIstype = GetWindowLong(FHwnd, GWL_STYLE) '窗體樣式位: 原樣式和最大化、最小化按鈕 FIstype = FIstype Or WS_MAXIMIZEBOX Or WS_MINIMIZEBOX '重設(shè)窗體樣式位 SetWindowLong FHwnd, GWL_STYLE, FIstype '重繪窗體標(biāo)題欄 DrawMenuBar FHwnd End Sub
Excel整體界面趨于平面化,顯得清新簡(jiǎn)潔。流暢的動(dòng)畫(huà)和平滑的過(guò)渡,帶來(lái)不同以往的使用體驗(yàn)。 |