Office開發須要的輔助工具

 

 Office開發主要包括兩個層面:功能開發和界面開發。編程

  • 功能開發,指的是開發的產品可以解決哪些問題,其餘人使用了你的工具改善了哪些方面。
  • 界面開發,指的是產品與用戶交互的方式,或者說產品呈如今Office窗口中的哪一個場所。

通常來講,一個成熟完善的Office插件、工具在開發的過程當中,都要考慮以上兩個方面。函數

本帖和你們分享一下Office界面開發方面的話題。工具

Office編程開發,容許開發人員植入的元素主要有:學習

  • customUI(自定義功能區、Office菜單、右鍵菜單等)
  • CustomTaskpane(自定義任務窗格)
  • Commandbar和CommandbarControl(自定義工具欄、控件等)

除了以上3種,還可使用窗體和控件,這裏所說的窗體指的是開發語言中的窗體,例如用VB.Net開發的插件,那就能夠加入VB.Net的窗體和控件。測試

其中,customUI和CustomTaskpane用於Office 2007以上版本,實際效果以下圖: 字體

 

 Commandbar和CommandbarControls可用於全部Office版本。此外,還用於VBA和VB6編程環境外接程序的開發中,由於VBA編程環境一直是工具欄/控件方式。ui

實際效果以下圖:spa

 

 然而,這些定製技術都有必定的理論基礎,customUI和Commandbar方面的知識體系很是龐大,須要長期研究學習才能掌握和理解。插件

CustomTaskpane的實現過程最爲簡單,也沒什麼太複雜的變化代碼。設計

以上這些重要技術的原理和具體實現過程,你們能夠看我寫過的書、發佈的視頻課程、帖子等。

爲了方便更多人學習,下面分享Office界面開發相關的重要工具。

customUI方面的工具

customUI是經過XML代碼實現,例以下面的XML將會在Excel的 開始選項卡的 字體組左側出現一個自定義組。

 1 <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
 2     <ribbon startFromScratch="false">
 3         <tabs>
 4             <tab idMso="TabHome" label="Ribbon XML Editor">
 5                 <group id="Group1" label="測試" insertBeforeMso="GroupFont" >
 6                     <button id="Button1" label="蜘蛛網&#xA;" imageMso="ChartTypeOtherInsertGallery" onAction="Button1_Click" size="large" />
 7                 </group>
 8             </tab>
 9         </tabs>
10     </ribbon>
11 </customUI>

 

效果以下:

上述附件的下載地址: 

customUIDemo.rar

看了上面的效果,你們必定有以下疑問:

  1. XML代碼是怎麼寫出來的?
  2. TabHome、GroupFont是哪兒來的?
  3. ChartTypeOtherInsertGallery從哪兒來的?
  4. Button1_Click起什麼做用?

下面一一解釋。

1. XML代碼是微軟規定好的語法格式,設計不一樣場所的Office界面,寫法也有所不一樣。

 Ribbon XML Editor軟件提供 快速訪問工具欄、經常使用功能區等5個經常使用場所的XML模板。用戶在此基礎上稍做修改便可。

該軟件還提供自動把XML壓入Office文檔、自動提取Office文檔中的XML代碼等功能。 

2. TabHome和GroupFont是Office的內置ID,叫作idMso。

 OfficeidMsoViewer軟件提供Access/Excel/PowerPoint/Word的全部內置idMso查詢,支持中文、英文、日文Office 2013。

點擊任何一個節點,直接給出該節點對應的XML代碼。

 

3. ChartTypeOtherInsertGallery是Office的一個內置圖標,叫作imageMso。

 imageMso7345能夠查詢微軟提供的7345個內置Office圖標,下載這個工做簿,點擊任何一個圖標會給出該圖標對應的imageMso字符串。

 

4. Button1_Click是按鈕控件的回調函數名稱,用來響應VBA中的過程。

Ribbon XML Editor軟件能夠根據XML生成 VBA、VB6/VB.Net/C#語言的回調函數。

 

Commandbar方面的工具

 在Excel 2003中,運行以下一段VBA代碼,會在單元格右鍵添加一個「蜘蛛網」的自定義按鈕。

 1 Sub AddControl()  2     Dim cmb As CommandBar, ct As CommandBarButton  3     Set cmb = Application.CommandBars("Cell")  4     Set ct = cmb.Controls.Add(Type:=msoControlButton, before:=1)  5     With ct  6         .BeginGroup = False
 7         .Caption = "蜘蛛網(&Z)"
 8         .Enabled = True
 9         .FaceId = 484
10         .Style = msoButtonIconAndCaption 11         .OnAction = "ct_Click"
12         .TooltipText = "提示語"
13         .BeginGroup = False
14         .Visible = True
15     End With
16 End Sub
17 Sub ct_Click() 18     ActiveCell.Value = Application.CommandBars.ActionControl.Caption 19 End Sub

實際效果以下圖:

 

看到這個效果,通常會產生以下疑問:

Application.CommandBars("Cell")這個代碼的Cell表明什麼意思?

FaceId = 484,這個數字起什麼做用?

回答以下:

Cell是Excel的一個內置工具欄的名稱,CommandBars("Cell")表示單元格的右鍵菜單,右鍵菜單也屬於工具欄的一個類型。

查詢全部內置工具欄的工具備:

OfficeCommandbarViewer:該工具能夠查看經常使用Office組件的全部內置工具欄和內置控件信息。

 OfficeCommandbarDesigner:能夠從該軟件中直接操做和控制Office的全部工具欄,能夠查看工具欄和控件信息,也能夠編輯。

 

使用以上工具,就能夠輕鬆地知道每一個工具欄的名稱叫什麼了,從而在正確的場所設計本身的工具。

對於工具欄中控件的圖標,微軟採用FaceID來規定,每一個數字表明一個內置圖標。

FaceIDViewer採用Excel工做簿製做的圖標查看工具。

 每一個圖標下面有一個數字,在代碼中設置FaceID爲這個數字就能夠。

 以上講過的全部工具,在個人博客園中都可下載到。下載網址你們自行搜索。

相關文章
相關標籤/搜索