Office開發主要包括兩個層面:功能開發和界面開發。編程
通常來講,一個成熟完善的Office插件、工具在開發的過程當中,都要考慮以上兩個方面。函數
本帖和你們分享一下Office界面開發方面的話題。工具
Office編程開發,容許開發人員植入的元素主要有:學習
除了以上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="蜘蛛網
" imageMso="ChartTypeOtherInsertGallery" onAction="Button1_Click" size="large" />
7 </group>
8 </tab>
9 </tabs>
10 </ribbon>
11 </customUI>
效果以下:
上述附件的下載地址:
看了上面的效果,你們必定有以下疑問:
下面一一解釋。
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爲這個數字就能夠。
以上講過的全部工具,在個人博客園中都可下載到。下載網址你們自行搜索。