20.4 自定義RibbonX實例
前面介紹了自定義RibbonX的步驟、常用RibbonX控件等內(nèi)容。本節(jié)以實例形式演示自定義RibbonX的各種方法,包括將內(nèi)置RibbonX控件組合成一個新的選項卡、添加自定義RibbonX控件到內(nèi)置選項卡、自定義Office按鈕功能、定義回調(diào)函數(shù)等實例。
本節(jié)的實例不再重復(fù)創(chuàng)建的各個步驟,具體操作可參見本章20.3節(jié)的內(nèi)容,在實例中只列出定義RibbonX的XML代碼、回調(diào)函數(shù)的VBA代碼等內(nèi)容。
20.4.1 組合內(nèi)置Ribbon
在Excel 2007功能區(qū)的內(nèi)置控件中,將不同用途的控件用選項卡進(jìn)行了分類。在大多數(shù)情況下,用戶要完成工作都需要在多個選項卡之間來回切換。利用功能區(qū)的自定義功能,可以新建一個選項卡,將常用內(nèi)置控件集中到一起,以方便用戶操作。
<customUI xmlns="
<ribbon>
<tabs>
<tab id="customTab" label="常用工具" insertAfterMso="TabHome">
<group idMso="GroupClipboard" />
<group idMso="GroupFont" />
<group idMso="GroupSortFilter" />
<group idMso="GroupInsertIllustrations" />
<group id="NewGroup" label="組合按鈕">
<button idMso="VisualBasic" />
<button idMso="SheetProtect" />
<button idMso="FilePrint" />
<separator id="MySeparator1" />
<menu idMso="WindowSwitchWindowsMenuExcel" size="large" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
以上XML代碼自定義的選項卡如圖20-24所示。
(點擊查看大圖)圖20-24 組合內(nèi)置控件
對于內(nèi)置控件,用戶不需要編寫任何VBA代碼,單擊這些控件即可調(diào)用系統(tǒng)提供的功能。在Excel 2007中提供了一千七百多個內(nèi)置RibbonX控件,用戶要使用這些內(nèi)置控件必須先要知道具體的名稱??梢栽?a target="_blank" >http://www.microsoft.com/zh/cn/default.aspx網(wǎng)站上以關(guān)鍵字2007OfficeControlIDsExcel2007搜索,找到2007OfficeControlIDsExcel2007.EXE文件,將其下載到本地硬盤。該文件為一個自解壓文件,將其解壓縮后可看到其中包含24個文件,分別為Office 2007各組件(包括Excel、Word、Outlook和PowerPoint)中RibbonX控件的名稱、類型等。Excel 2007中RibbonX控件名稱包含在ExcelRibbonControls.xlsx文件中,打開該文件,可看到如圖20-25所示的控件信息。
(點擊查看大圖)圖20-25 Excel 2007控件列表
另外,Microsoft Office 2007提供了大約二千五百個內(nèi)置命名的圖像,這些圖像與不同的命令相關(guān)聯(lián)。如果知道圖像的名稱,則可以為自定義的RibbonX控件中指定這些圖像。
微軟提供的mso image browser.xlsm工作簿列出了Excel 2007提供的這些圖像,可從網(wǎng)上下載該工作簿。該工作簿的內(nèi)容如圖20-26所示,在工作表第1行中列出了當(dāng)前選中名稱的圖像及后面的50個圖像。從第2行開始,每行第1列顯示1個內(nèi)置圖像的名稱,在XML代碼中使用imageMso屬性引用圖像名稱,即可顯示出對應(yīng)的圖像。
(點擊查看大圖)圖20-26 Excel 2007內(nèi)置圖像
提示:也可以將內(nèi)置圖像顯示在用戶窗體的Image控件中。例如,下面的代碼將為用戶窗體中的Image1控件設(shè)置內(nèi)置圖像,圖像的尺寸被指定為32×32像素。
Image1.Picture = Application.CommandBars.
GetImageMso("AccessTableEvents", 32, 32)