人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 辦公軟件教程 > 詳細(xì)頁面

Excel VBA 窗體之工具欄式窗體(小標(biāo)題窗體)完成代碼

Excel VBA 窗體之工具欄式窗體(小標(biāo)題窗體)完成代碼

更新時(shí)間:2024-01-23 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

Microsoft Excel是Microsoft為使用Windows和Apple Macintosh操作系統(tǒng)的電腦編寫的一款電子表格軟件。直觀的界面、出色的計(jì)算功能和圖表工具,再加上成功的市場(chǎng)營銷,使Excel成為最流行的個(gè)人計(jì)算機(jī)數(shù)據(jù)處理軟件。

在 VBE 編輯器中,我們能看到很多的小標(biāo)題欄窗體,這就是工具欄窗體,其實(shí)我們通過對(duì)VBA用戶窗體的定制,也可以使VBA的用戶窗體成為工具欄式窗體。本文就是運(yùn)用API函數(shù)來定制 Office 中的用戶窗體,使其成為工具欄窗體。

Excel VBA 窗體之工具欄式窗體(小標(biāo)題窗體)實(shí)現(xiàn)代碼


附件下載:

點(diǎn)擊鏈接從百度網(wǎng)盤下載
操作如下:
?在Excel 的VBE窗口中插入一個(gè)用戶窗體,將其命名為 frmTools。在用戶窗體中添加兩個(gè)按鈕,然后再添加一個(gè)模塊。在窗體和模塊中添加后面所列代碼。
?在工作薄中的任意工作表中添加一窗體按鈕控件,將指定其 設(shè)置宏 為 btnToolsForm_Click。其供示范之用.
具體代碼:

"ModToolsForm" 模塊代碼

Sub btnToolsForm_Click()
frmTools.Show
End Sub

"frmTools" 窗體代碼

Option Explicit
'***************************************
'---此模塊演示了一個(gè)工具欄窗體---
'***************************************
'以下聲明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 GetWindowLongPtr _
Lib "user32" _
Alias "GetWindowLongPtrA" ( _
ByVal hwnd As LongPtr, _
ByVal nIndex As Long) _
As LongPtr
Private Declare PtrSafe Function SetWindowLongPtr _
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_EXSTYLE = (-20)
Private Const WS_EX_TOOLWINDOW = &H80&


'****************************************
'---主程序---
'****************************************

Private Sub btnClose_Click()
Unload Me
End Sub

Private Sub btnReset_Click()
#If Win64 Then '64位
'取得拓展窗口樣式位
FIstype = GetWindowLongPtr(FHwnd, GWL_EXSTYLE)
'拓展窗體樣式位: 原樣式無工具欄窗口樣式
FIstype = FIstype And Not WS_EX_TOOLWINDOW
'重設(shè)拓展窗體樣式位
SetWindowLongPtr FHwnd, GWL_EXSTYLE, FIstype
'重繪窗體標(biāo)題欄
DrawMenuBar FHwnd
#Else
'取得拓展窗口樣式位
FIstype = GetWindowLong(FHwnd, GWL_EXSTYLE)
'拓展窗體樣式位: 原樣式無工具欄窗口樣式
FIstype = FIstype And Not WS_EX_TOOLWINDOW
'重設(shè)拓展窗體樣式位
SetWindowLong FHwnd, GWL_EXSTYLE, FIstype
'重繪窗體標(biāo)題欄
DrawMenuBar FHwnd
#End If
End Sub

Private Sub UserForm_Initialize()
#If Win64 Then '64位
'查找本窗口句柄
FHwnd = FindWindow("ThunderDFrame", Me.Caption)
'取得拓展窗口樣式位
FIstype = GetWindowLongPtr(FHwnd, GWL_EXSTYLE)
'拓展窗體樣式位: 原樣式和工具欄窗口樣式
FIstype = FIstype Or WS_EX_TOOLWINDOW
'重設(shè)拓展窗體樣式位
SetWindowLongPtr FHwnd, GWL_EXSTYLE, FIstype
'重繪窗體標(biāo)題欄
DrawMenuBar FHwnd
#Else
'查找本窗口句柄
FHwnd = FindWindow("ThunderDFrame", Me.Caption)
'取得拓展窗口樣式位
FIstype = GetWindowLong(FHwnd, GWL_EXSTYLE)
'拓展窗體樣式位: 原樣式和工具欄窗口樣式
FIstype = FIstype Or WS_EX_TOOLWINDOW
'重設(shè)拓展窗體樣式位
SetWindowLong FHwnd, GWL_EXSTYLE, FIstype
'重繪窗體標(biāo)題欄
DrawMenuBar FHwnd
#End If
End Sub


Excel整體界面趨于平面化,顯得清新簡潔。流暢的動(dòng)畫和平滑的過渡,帶來不同以往的使用體驗(yàn)。

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 福海县| 江川县| 邯郸县| 平顶山市| 永安市| 浦北县| 牟定县| 贡嘎县| 旬阳县| 名山县| 玛曲县| 杭锦后旗| 交口县| 得荣县| 远安县| 新泰市| 西和县| 庆城县| 博兴县| 彰化市| 齐河县| 平南县| 织金县| 道真| 诸暨市| 历史| 永城市| 泾川县| 呼伦贝尔市| 泰宁县| 太湖县| 东平县| 呼玛县| 岑溪市| 汨罗市| 荣成市| 察哈| 六枝特区| 阜南县| 永嘉县| 固安县|