国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
我的菜單我做主,VBA代碼在EXCEL菜單中添加自定義新項(xiàng)

大家好,我們今日繼續(xù)講解VBA代碼解決方案的第121講內(nèi)容:如何在Excel工作表的菜單中自定義添加新的菜單項(xiàng)和子菜單

在我之前的文章中講到,我最初VBA是學(xué)習(xí)前輩的代碼,前輩的文件響應(yīng)代碼就是通過菜單的自定義來實(shí)現(xiàn)的,今日我們也來談?wù)勛远x菜單的問題。添加菜單可以用Add方法。

Add方法應(yīng)用于CommandBarControls對象時(shí),新建一個(gè)CommandBarControl對象并添加到指定命令欄上的控件集合,語法如下:

expression.Add(Type, Id, Parameter, Before, Temporary)

參數(shù)expression 是必須的,返回一個(gè)CommandBarControls對象,代表命令欄中的所有控件。

參數(shù)Type是可選的,添加到指定命令欄的控件類型,可以為下面所列的常數(shù)之一。

msoControlButton 1 命令按鈕

msoControlEdit 2 文本框

msoControlDropdown 3 下拉列表控制框

msoControlComboBox 4 下拉組合控制框

msoControlPopup 10 彈出式控件

參數(shù)Id是可選的,標(biāo)識整數(shù)。如果將該參數(shù)設(shè)置為 1或者忽略,將在命令欄中添加一個(gè)空的指定類型的自定義控件。

參數(shù)Parameter是可選的,對于內(nèi)置控件,該參數(shù)用于容器應(yīng)用程序運(yùn)行命令。對于自定義控件,可以使用該參數(shù)向Visual Basic過程傳遞信息,或用其存儲控件信息。

參數(shù)Before是可選的,表示新控件在命令欄上位置的數(shù)字。新控件將插入到該位置控件之前。如果忽略該參數(shù),控件將添加到指定命令欄的末端。

參數(shù)Temporary是可選的。設(shè)置為True將使添加的菜單項(xiàng)為臨時(shí)的,在關(guān)閉應(yīng)用程序時(shí)刪除。默認(rèn)值為False。

下面我們就一個(gè)實(shí)例來講解如何添加菜單。如下面的代碼所示。

Sub MynzTools()

Dim myTools As CommandBarPopup

Dim myCap, myAct As Variant

Dim myid As Variant

Dim i As Byte

myCap = Array('VBA代碼解決方案1', 'VBA代碼解決方案2', 'VBA代碼解決方案3')

myAct = Array('myNz1', 'myNz2', 'myNz3')

With Application.CommandBars('Worksheet menu bar')

.Reset

Set myTools = .Controls.Add(Type:=msoControlPopup)

With myTools

.Caption = 'VBA學(xué)習(xí)'

.BeginGroup = True

For i = 1 To 3

With .Controls.Add(Type:=msoControlButton)

.Caption = myCap(i - 1)

.OnAction = myAct(i - 1)

End With

Next

End With

End With

Set myTools = Nothing

End Sub

Sub MynzDelmyTools()

Application.CommandBars('Worksheet menu bar').Reset

End Sub

Sub myNz1()

MsgBox '歡迎學(xué)習(xí)VBA代碼解決方案第一冊'

End Sub

Sub myNz2()

MsgBox '歡迎學(xué)習(xí)VBA代碼解決方案第二冊'

End Sub

Sub myNz3()

MsgBox '歡迎學(xué)習(xí)VBA代碼解決方案第三冊'

End Sub

代碼解析:myTools過程使用Add方法在Excel工作表菜單欄中加一個(gè)標(biāo)題為'VBA學(xué)習(xí)'的菜單項(xiàng)和3個(gè)子菜單。

第2行到第5行代碼聲明變量類型。

第6,7行代碼使用Array函數(shù)創(chuàng)建數(shù)組用于保存子菜單的名稱,和菜單的動作

第9行代碼,在添加菜單項(xiàng)前先使用Reset方法重置菜單欄以免重復(fù)添加菜單項(xiàng)。Reset方法重置一個(gè)內(nèi)置控件,恢復(fù)該控件原來對應(yīng)的動作,并將各屬性恢復(fù)成初始狀態(tài),

語法如下:expression.Reset

參數(shù)expression 是必須的,返回一個(gè)命令欄或命令欄控件對象。

第10行代碼,使用Add方法在Excel工作表菜單欄中添加菜單項(xiàng)。因?yàn)樵诒纠袑⑻砑拥氖菐в凶硬藛蔚牟藛雾?xiàng),所以將參數(shù)Type設(shè)置為彈出式控件。

第12行代碼,設(shè)定新添加菜單項(xiàng)的Caption屬性為'VBA學(xué)習(xí)'。Caption屬性返回或設(shè)置命令欄控件的標(biāo)題。

第13行代碼,設(shè)置新添加菜單項(xiàng)的BeginGroup屬性為True,分組顯示。

第14行到第18行代碼,在'VBA學(xué)習(xí)'菜單項(xiàng)上添加3個(gè)子菜單并設(shè)置其Caption屬性。和相應(yīng)的動作。

好了,我們看我們的運(yùn)行效果:

運(yùn)行前界面:

點(diǎn)擊添加菜單:

點(diǎn)擊'VBA代碼解決方案1':彈出對話框效果。

上述代碼中:

Sub MynzDelmyTools()

Application.CommandBars('Worksheet menu bar').Reset

End Sub

是重置菜單,也就是說在退出前要重置一下菜單。

關(guān)于菜單內(nèi)容還有一些內(nèi)容,或許充實(shí)到結(jié)集后的文章中。本篇的文章太長了。

今日內(nèi)容回向:

1. 如何設(shè)置菜單?

2 如何讓菜單響應(yīng)不同的動作?

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VBA常用代碼解析(第二十講)
VBA自定義菜單和菜單欄
EXCEL中簡單使用VBA上
如何在Excel中自定義菜單和菜單欄
如何利用VBA代碼進(jìn)行工作表的隱藏及表格的插入方法
第二篇 應(yīng)用環(huán)境
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服