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为这个数字就能够。
以上讲过的全部工具,在个人博客园中都可下载到。下载网址你们自行搜索。