九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

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

開(kāi)通VIP
細(xì)品RibbonX(52):如何共享Ribbon定制之在正在使用的多個(gè)Office版本中部署Excel解決方案
除非每個(gè)人都在使用Office 2007,因而知道在仍使用老的Office版本中如何部署加載項(xiàng)文件是非常有幫助的。
舊的命令欄定制仍然工作嗎?
考慮安裝Office 2007的Office開(kāi)發(fā)者面臨的最大的問(wèn)題之一是“我的定制在全新的功能區(qū)中仍然工作嗎?”回答是肯定的。定制仍然工作,只是已經(jīng)在不顯眼的地方。即這些定制將會(huì)自動(dòng)出現(xiàn)在Office 2007應(yīng)用程序的“加載項(xiàng)”選項(xiàng)卡中。
下面,介紹幾種在不同環(huán)境中部署Excel解決方案的方法。
方法1:創(chuàng)建單獨(dú)的版本
在帶有多個(gè)Office版本的環(huán)境中部署解決方案的第一種方法是最明顯的:為應(yīng)用程序的每種文件格式創(chuàng)建一個(gè)版本。
方法2:從新的加載項(xiàng)中調(diào)用以前的版本
在帶有多個(gè)Office版本的環(huán)境中工作的另一種方法是:創(chuàng)建傳統(tǒng)的加載宏或全局模板來(lái)包含2007文件的RibbonX界面。在2007文件中使用Application.Run方法,可以調(diào)用存儲(chǔ)在傳統(tǒng)文件中的過(guò)程。采用這種方法,傳統(tǒng)的文件實(shí)際上包含了所有的功能代碼,而2007文件只是擔(dān)當(dāng)啟動(dòng)器。
使用2003 Excel加載項(xiàng)作為2007 加載項(xiàng)的裝載器
遷移2003文件處理2003環(huán)境以及擔(dān)當(dāng)2007文件的后臺(tái)的過(guò)程最好按照下列三個(gè)步驟:
  • 創(chuàng)建基本的2007功能區(qū)定制加載項(xiàng)。
  • 對(duì)2003加載宏做必需的修改。
  • 鏈接到2007文件確保2003文件首先被打開(kāi)。

事件的順序是重要的,以便不會(huì)在繼續(xù)時(shí)引起崩潰。最后一點(diǎn)是,確保用戶在沒(méi)有2003版時(shí)決不要裝載該文件的2007版,2003版包含著2007版運(yùn)行需要的所有宏代碼。
首先,創(chuàng)建基本的2007加載項(xiàng)部分。打開(kāi)Excel,創(chuàng)建新工作簿,將在默認(rèn)的AddIns文件夾中以ForumLauncher_2007.xlam來(lái)保存。關(guān)閉Excel,在CustomUI Editor中打開(kāi)該文件,輸入下面的XML代碼來(lái)創(chuàng)建功能區(qū)定制:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"><ribbon startFromScratch="false"><tabs><tab idMso="TabDeveloper"><group id="rxgrpForums"					label="Forums"><button id="rxbtnRibbonX"						label="Patrick Schmid's RibbonX Forum"						onAction="rxsharedLinks_click"				            imageMso="HyperlinkInsert"						tag="RibbonX"/><button id="rxbtnVBAX"						label="VBA Express"						onAction="rxsharedLinks_click"				            imageMso="HyperlinkInsert"						tag="VBAX"/></group></tab></tabs></ribbon></customUI>

上述代碼在“加載項(xiàng)”選項(xiàng)卡的末尾的自定義組中添加了兩個(gè)按鈕。注意,按鈕使用了共享的回調(diào)rxsharedLinks_click,使用了tag屬性。
驗(yàn)證代碼并保存,復(fù)制回調(diào)簽名,關(guān)閉CustomUI Editor。打開(kāi)Excel并安裝該加載項(xiàng)。轉(zhuǎn)到VBE,導(dǎo)航到ForumLauncher工程,插入一個(gè)新模塊,粘貼回調(diào)簽名,并作如下修改:

Sub rxsharedLinks_click(control As IRibbonControl)Application.Run "LaunchFrom2007", control.TagEnd Sub

這個(gè)過(guò)程使用Application.Run方法從另一個(gè)打開(kāi)的文件中啟動(dòng)宏,指定了要啟動(dòng)的宏的名字LaunchFrom2007,還有一個(gè)參數(shù):控件的標(biāo)簽。
保存后卸載該加載項(xiàng)。
下一步,對(duì)2003加載宏作必需的修改,即ForumLauncher_v2003.xla。
首先,修改開(kāi)始代碼確保菜單不會(huì)被創(chuàng)建在“加載項(xiàng)”選項(xiàng)卡中,然而在Excel 2003中仍然是菜單。使用下列步驟測(cè)試版本并裝載正確的菜單。打開(kāi)VBE,導(dǎo)航到ForumLauncher_v2003.xla工程,展開(kāi)ThisWorkbook模塊,修改Workbook_Open過(guò)程如下:

Private Sub Workbook_Open()Dim wbAddin As AddInDim bInstalled As BooleanDim s2007Filename As String s2007Filename = Application.WorksheetFunction.Substitute(ThisWorkbook.Name, "2003", "2007") & "m" If Val(Application.Version) < 12 ThenCall CreateMenuElse'檢查是否安裝了加載項(xiàng)        For Each wbAddin In Application.AddInsIf wbAddin.Name = s2007Filename Then'加載項(xiàng)已安裝,打開(kāi)它                Workbooks.Open ThisWorkbook.Path & Application.PathSeparator & s2007FilenamebInstalled = TrueExit ForEnd IfNext wbAddin '如果需要安裝加載項(xiàng)        If Not bInstalled Then Application.AddIns.Add _ThisWorkbook.Path & Application.PathSeparator & s2007FilenameEnd IfEnd Sub

Workbook_Open事件現(xiàn)在完成如下操作:

  • 通過(guò)將2003加載項(xiàng)文件名中的2003替換為2007,然后添加m到結(jié)果字符串中,從而捕獲2007加載項(xiàng)的名字并賦值給變量。
  • 檢查應(yīng)用程序的版本,如果版本小于12,則創(chuàng)建菜單。
  • 如果版本不小于12,檢查2007加載項(xiàng)是否已經(jīng)安裝。
  • 如果2007版加載項(xiàng)已安裝,則裝載文件并記錄2007版本已安裝。
  • 評(píng)估bInstalled屬性。如果為假,那么安裝加載項(xiàng)。

因?yàn)槲覀円呀?jīng)在2003文件被啟動(dòng)時(shí)安裝并打開(kāi)了2007文件,所以結(jié)束時(shí)明確地卸載2007文件。為此,需要修改Workbook_BeforeClose過(guò)程來(lái)檢查版本并且卸載2007加載項(xiàng):

Private Sub Workbook_BeforeClose(Cancel As Boolean)If Val(Application.Version) > 11 ThenWorkbooks(Application.WorksheetFunction.Substitute(ThisWorkbook.Name, "2003", "2007") & "m").CloseElseCall DeleteMenuEnd IfEnd Sub

同理,如果文件版本小于12,那么已經(jīng)裝載了2003菜單修改,因此需要觸發(fā)DeleteMenu過(guò)程。如果應(yīng)用程序的版本不小于12,那么需要代碼關(guān)閉2007加載項(xiàng)文件。
最后,對(duì)2003加載項(xiàng)需要提供輸入點(diǎn)以便2007版本的文件能夠調(diào)用過(guò)程。當(dāng)在Excel 2003或更早的版本中單擊菜單按鈕時(shí)觸發(fā)下列兩個(gè)過(guò)程:

Private Sub Launch_VBAX()'啟動(dòng)VBAX網(wǎng)站    ActiveWorkbook.FollowHyperlink (sVBAXURL)End Sub Private Sub Launch_RibbonX()'啟動(dòng)RibbonX論壇    ActiveWorkbook.FollowHyperlink (sRibbonXURL)End Sub

接著,在標(biāo)準(zhǔn)模塊中添加下面的過(guò)程:

Public Sub LaunchFrom2007(sSiteToLaunch)'從2007加載項(xiàng)中擔(dān)當(dāng)裝載器    Select Case UCase(sSiteToLaunch)Case Is = "VBAX"Call Launch_VBAXCase Is = "RIBBONX"Call Launch_RibbonXEnd SelectEnd Sub

Case語(yǔ)句評(píng)估單擊的控件,并從2003文件中啟動(dòng)合適的宏。
現(xiàn)在,我們已經(jīng)完成了需要的轉(zhuǎn)換,保存2003 xla加載宏并卸載?;氐?007加載項(xiàng),強(qiáng)迫用戶首先打開(kāi)2003版。
再次安裝2007版的加載項(xiàng)。打開(kāi)VBE,導(dǎo)航到ForumLauncher_v2007.xlam工程,在ThisWorkbook模塊中插入下列代碼:

Private Const sReqdAddin = "Forum_Launcher_v2003.xla" Private Sub Workbook_Open()Dim wbTest As Workbook On Error Resume NextSet wbTest = Workbooks(sReqdAddin)If Err.Number = 0 Then'加載項(xiàng)打開(kāi)        On Error GoTo 0Exit SubEnd If '加載項(xiàng)必須被打開(kāi)    On Error GoTo 0MsgBox "You must load " & sReqdAddin & " to use " & ThisWorkbook.NameThisWorkbook.Close savechanges:=FalseEnd Sub

好了!轉(zhuǎn)換完成。保存文件并再次卸載該加載項(xiàng)。
現(xiàn)在來(lái)測(cè)試。打開(kāi)加載項(xiàng)管理器,安裝2003版本的加載項(xiàng),可以在開(kāi)發(fā)工具選項(xiàng)卡的右側(cè)看到完整的功能組,如下圖所示。


返回到加載項(xiàng)管理器,卸載2003版,安裝2007版,單擊“確定”返回用戶界面,此時(shí)會(huì)顯示如下圖所示的錯(cuò)誤消息。

轉(zhuǎn)到VBE,你將看到2003版和2007版的加載項(xiàng)文件都沒(méi)有被裝載。此時(shí),裝載2007 xlam加載項(xiàng)的唯一方法是首先裝載2003的xla文件。這樣,避免用戶不小心選擇了錯(cuò)誤的加載項(xiàng)。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
COM加載項(xiàng)編寫過(guò)程(Excel、以工具欄響應(yīng))
VBA實(shí)戰(zhàn)技巧32:安裝Excel加載宏
office文件點(diǎn)擊保存就閃退
自學(xué)資料(Excel VBA)[收集整理10]
尋找Excel2007中消失的簡(jiǎn)繁轉(zhuǎn)換功能--太平洋電腦網(wǎng)Pconline-[Excel]
Office 64位和32位的區(qū)別在哪?Office 32位和64位哪個(gè)好
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服