RibbonX和Visual Studio互為補(bǔ)充,可以非常方便地使用它們創(chuàng)建許多令人驚嘆的應(yīng)用程序。Microsoft已經(jīng)為Visual Studio和RibbonX協(xié)同工作做出了很多努力,不僅僅有用于創(chuàng)建每類RibbonX項(xiàng)目的特定模板,而且利用Visual Studio可以做更多的事情。
使用Visual Studio的優(yōu)勢使用Visual Studio的最大的一個(gè)特點(diǎn)是將XML代碼和資源注入到Office中的能力。如果你決定創(chuàng)建額外的選項(xiàng)卡、組和相關(guān)控件,以滿足特定的用戶需求,那么你能夠這樣做。使用這項(xiàng)技術(shù),也能夠定制滿足特定的角色需求的顯示,管理員可以比其他員工看到更多的控件。使用XML注入同時(shí)意味著能夠在標(biāo)準(zhǔn)的XML文件中存儲Ribbon變化,并且在運(yùn)行期在需要時(shí)簡單地添加功能。
資源——例如用于定義界面的XML——容易被注入到Office環(huán)境。例如,可以容易地在運(yùn)行時(shí)為需要的按鈕添加圖標(biāo)或位圖,而不是必須包含它們作為文件的一部分。這種添加的靈活性意味著能夠更新圖標(biāo)或位圖,而無須接觸到創(chuàng)建的加載項(xiàng)、模板或文檔。成功執(zhí)行的唯一的條件是,新資源要與原先使用的應(yīng)用程序具有相同的文件名。
另一方面,Visual Studio提供了安全的環(huán)境,大大減少了受到安全威脅的情形。
最后,托管的代碼有很多好處,可以排除內(nèi)存泄漏,提供強(qiáng)大的錯(cuò)誤處理,也更穩(wěn)定。并且,使用托管的代碼可以很容易地執(zhí)行許多任務(wù)。例如,在Visual Studio中,處理Web服務(wù)只需添加一個(gè)簡單的Web引用,然后訪問Web服務(wù)功能就像任何其它類一樣。
RibbonX基礎(chǔ)可以創(chuàng)建許多Office應(yīng)用程序類型。顯示在Visual Basic\Office文件夾中的文檔和模板如下圖所示。
在希望使用加載項(xiàng)時(shí),選擇Visual Basic\Office\2007文件夾。加載項(xiàng)將會創(chuàng)建跨文檔和模板工作的應(yīng)用程序,在用戶刪除或禁用之前,加載項(xiàng)總是可用的。當(dāng)然,在需要時(shí)很容易添加和刪除加載項(xiàng)。
創(chuàng)建基本的選項(xiàng)卡與VBA不同,Visual Studio為處理Ribbon提供了一種完整的解決方案。處理Ribbon最容易的方法是以加載項(xiàng)工程模板開始。
步驟1 打開Visual Studio。
步驟2 選擇“文件——新建項(xiàng)目”,將看到如上圖所示的“新建項(xiàng)目”對話框。
步驟3 使用喜歡的語言,打開2007文件夾。
步驟4 選擇應(yīng)用程序的加載項(xiàng)模板,輸入名稱,單擊“確定”。這里的名稱為BasicTab。
為了處理Ribbon,需要添加其它項(xiàng)目。Ribbon文件包括代碼文件,包含創(chuàng)建的控件的代碼,還包括XML文件,告訴Office如何配置功能區(qū)。
步驟5 在“解決方案資源管理器”中的項(xiàng)目名稱(BasicTab)中單擊右鍵,選擇“添加——新建項(xiàng)”,出現(xiàn)“添加新項(xiàng)——BasicTab”對話框,如下圖所示。
步驟6 選擇“功能區(qū)(XML)”,你可以輸入名稱或者使用默認(rèn)的名稱(這里使用默認(rèn)的名稱),單擊“添加”。
Visual Studio添加一個(gè)新的代碼文件和XML文件。Ribbon1.XML文件已經(jīng)包含一個(gè)簡單的選項(xiàng)卡、組和按鈕,因此本例中保留默認(rèn)項(xiàng)目。但是,在能夠真正看到功能區(qū)修改之前,要添加XML文件到應(yīng)用程序資源中。
步驟7 在解決方案資源管理器中打開項(xiàng)目屬性窗口,拖動Ribbon1.xml到“資源”窗口中,如下圖所示。
你可能已經(jīng)注意到,使示例完整所必需的大多數(shù)代碼已經(jīng)作為創(chuàng)建的工程的一部分出現(xiàn)。當(dāng)然,你需要作已一些修改以完善示例。
步驟8 按照提示,將Ribbon1.vb中的注釋代碼復(fù)制到ThisAddIn.vb中并取消注釋。代碼如下:
Protected Overrides Function CreateRibbonExtensibilityObject() As Microsoft.Office.Core.IRibbonExtensibilityReturn New Ribbon1()End Function
步驟9 在新建的功能區(qū)中添加一些元素,即修改Ribbon1.xml代碼,添加組:
<group id="MyGroup" label="我的組"><toggleButton id="toggleButton1" size="large" label="我的按鈕" screentip="My Button Screentip" onAction="OnToggleButton1" imageMso="HappyFace" /></group>
步驟10 按F5鍵,調(diào)試代碼。此時(shí),會啟動Excel 2007,界面如下圖所示。
可以看到,與CustomUI Editor不同,Visual Studio可以創(chuàng)建中文的選項(xiàng)卡和組。
當(dāng)發(fā)布該項(xiàng)目后,加載項(xiàng)會自動添加到Excel,以后打開Excel時(shí)都將啟動該加載項(xiàng)。如何卸載呢?
步驟1 選擇“Office菜單——Excel選項(xiàng)”,出現(xiàn)“Excel選項(xiàng)”對話框。
步驟2 選擇“加載項(xiàng)”。看到“BasicTab”加載項(xiàng)列于“添動應(yīng)用程序加載項(xiàng)”列表中,如下圖所示。注意到,“類型”列表明這是一個(gè)COM加載項(xiàng)。
步驟3 在“管理”下拉列表中,選擇“COM加載項(xiàng)”,單擊“轉(zhuǎn)到”。出現(xiàn)下圖所示的“COM加載項(xiàng)”對話框。
步驟4 取消BasicTab加載項(xiàng)前的選擇,單擊“刪除”,從列表中移除該加載項(xiàng)應(yīng)用程序。
至此,你不會再看到該加載項(xiàng)對應(yīng)用程序界面的修改。
然而,上述操作并沒有從注冊表中移除該加載項(xiàng)。你需要使用特別的實(shí)用程序或工具來移除注冊表項(xiàng)。
步驟1 找到該加載項(xiàng)的完整文件路徑。
步驟2 選擇“開始—所有程序—Microsoft Visual Studio 2008—Visual Studio Tools—Visual Studio 2008命令提示”。
步驟3 在命令提示中,輸入RegAsm/Unregister <完整的DLL名稱>,按回車鍵。
RegAsm實(shí)用程序?qū)⒏嬖V你成功注銷了類型。