小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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

 hjr231 2019-04-28

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

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

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

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

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

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

msoControlButton 1 命令按鈕

msoControlEdit 2 文本框

msoControlDropdown 3 下拉列表控制框

msoControlComboBox 4 下拉組合控制框

msoControlPopup 10 彈出式控件

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

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

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

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

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

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代碼解決方案第一冊(cè)'

End Sub

Sub myNz2()

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

End Sub

Sub myNz3()

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

End Sub

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

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

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

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

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

語(yǔ)法如下:expression.Reset

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

第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)的動(dòng)作。

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

運(yùn)行前界面:

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

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

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

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

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

上述代碼中:

Sub MynzDelmyTools()

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

End Sub

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

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

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

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

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

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多