158 福建电脑 2010年第6期 利用VSTO技术扩展Office系统软件功能 黎浩宏 (浙江工贸职业技术学院信息工程系浙江温州325003) 【摘 要】:本文介绍了使用VSTO平台的开发技术。通过在Ofifce软件中添加自定义的菜单和在工具栏中添加按钮方 式,调用后台程序集,能够扩展Ofifce办公软件的功能,实现用户的需求,减少了重复劳动和出错概率,提高了工作效率。 【关键词】:VSTO;功能扩展;Office; ̄管代码 O.引言. Private WithEvents simpleButton As Ofifce.CornmandBarButton Microsoft Ofifce办公软件具有强大的功能和友好的界面. Private Sub SheetI_Startup fByVal sender As Objeet,ByVal e As System.Even- 在日常办公中的应用非常广泛 日常办公工作人员对Omce软 tArgs)Handles Me.Startup Dim controlGounter As Integer=I 件的基本操作方法和功能都非常熟悉.能够实现办公过程中的 menuBar=Me.Application.CommandBars.AetiveMenuBar 大部分功能。由于各行各业的特殊要求.如对数据的显示格式、 contmlCounter=menuBar.Controls.Count—l 文档的格式要求等.我们可以将常用的具有共性的一系列操作 Dim commandBars As Ofifce.CommandBars 用代码实现。通过在Ofifce办公系统软件中.添加自定义菜单或 Dim standardBar As Ofifce.CommandBar 按钮的方式交给计算机代码自动处理.无疑能够大幅度的减少 commandBars:Me.Application.CommandBars 工作人员的重复劳动和出错概率,提高工作效率。 standardBar eommandBars(”Standard”、 在T具栏上添加按钮 1.Vsto开发技术 If simpleButton Is Nothing Then Visual Studio 2005 Tools for Ofifce(VSTO)是一套用于创建自 simpleButton=CType(standardBar.Controls.Add(1),Ofifce.CommandBarBut— 定义Omce应用程序的Visual Studio工具包.利用VSTO平台技 ton) 术结合Visual Studio.NET平台的强大功能创建Ofifce系统解决 simpleButton.Caption=”大写转换” simpleButton.Style=Ofifce.MsoButtonStyle.msoButtonCaption 方案.能够在Ofifce应用程序的基础上扩展和自行定制符合用 EndIf 户需求的功能 在菜单项添加自定义菜单 微软公司将0mce应用程序分解为多个0伍ce对象模型. If MyMenu Is Nothing hTen 该对象模型是一组由O伍ce应用程序提供的对象.可以通过代 MyMenu=CType(menuBar.Controls.Add(Type:=_ 码对这些对象模型控制,从而完成Ofifce应用程序的开发。由于 MsoControlType.msoControlPopup,Before:=controlCounter,. 所有的Ofifce对象模型都是用非托管代码编写的.并且提供了 Temperary:=True),CommandBarPopup) MyMenu.Caption=”&我的菜单” COM接口.所以使用.NET技术和Omce的非托管COM接13进 MyMenu.Tag ”MyMenu” 行交互.我们必须使用PIA(Primary Interop Assemblies,主互调程 MenultemChangeNum=CType(MyMenu.Controls.Add(Type:=.. 序集1程序集和Ofifce的非托管COM接口实现信息通讯。 Ofifce.MsoContmlType.msoControlButton。Temporary:=Tme),.. 2.自定义菜单项和工具栏按钮 Office.CommandBarButton) 控件通常作为软件和用户的接口以及代码的人口点.要执 MenuhemChangeNum.Caption=”&大写金额 MenuhemChangeNum.Tag=‘ ChineseMoney“ 行操作时.用户通过使用菜单项或者工具栏中的按钮,执行相应 MenuhemChangeNum.Paceld=65 的代码。实现要操作的功能。使用VSTO技术实现时。必须用编 EndⅡ 程方式将菜单项或者按钮添加到0伍ce系统办公软件的菜单或 End Sub 工具栏中。我们以Excel软件为例,在Excel软件中,添加自定义 ●●●●__●● 的菜单项和按钮.通过这两种方式.实现用户特定需求。下面详 End Class 在MenuhemChangeNum菜单项(自定义”大写金额”菜单 细介绍其过程 项)的click事件中,取出合计金额的值,将之用代码实现转换为 2.1创建自定义菜单和菜单项 以商品订单为例.将Excel中的小写金额转化为大写金额 大写金额即可,单元格c12是大写金额显示部分,I12是自动汇 总的小写金额。小写金额转化为大写金额的代码用Visual Basic. 写入到相应单元格.为描述简单。我们将金额的单元格设定为固 定单元格.订单的各项内容在Excel中自行输人,订单格式和内 net很容易编写,限于篇幅,不再列出。关键代码如下: Private Sub MenuhemChangeNum_容可以利用Excel自身的功能实现.各项金额和总金额可以用 Click(…)Handles Me- nultemChangeNum.Click E】【cel软件的内嵌函数编写简单公式实现。 创建一个Visual Basic的0伍ce项目.在模板中选择”Excel Dim excelCell As Exce1.Range=Me.Range(”c12”1 工作簿”.项目名取名为”excelWorkbookMenu”,在项目中引用” Dim Cell As Exce1.Range=Me.Range(”I12”1 Dim str As string=-..・"sir用于保存由小写金额转换 Microsoft Excel l1.0 Object Library”和”Microsoft Ofifce 1 1.0 Ob・ iect Library”两个类库,在sheet1.vb文件中编写相应代码,其关 后的大写金额字符串 键代码如下: excelCel1.Value=・’人民币(大写):”+s叶”整” Imports Excel=Microsoft.Ofifce.Interop.Excel Public Class SheetI End Sub MyMenu为白定义菜单”我的菜单”的菜单名 2.2部署和运行Excel工作簿 Dim MyMenu As Ofifce.CommandBarPopup 要使.NET程序集能够运行.必须在客户机上安装支持托管 Menuhen ̄hangeNum为自定义菜单”大写金额“的菜单名.这是事件响应变 程序运行的环境。方可使用。在客户机上要满足如下的条件: 量 1)安装.net framework 2.0 Private WithEvents MenuhemChangeNum As Office.CommandBarButton Dim ill ̄nllBar As Omee.CommandBar 21安装Microsoft并安装SPI或SP2 3)安装Ofifce 2003 PIA(主互操作集) (下转第178页) 178 福建 电脑 2010年第6期 统允许授权用户在局域网内随时随地登陆查看.真正实现高清 排与教务排课体系联动机制,确保”上课开机、人去电断”。在质 晰教学质量实时监控。监控系统所提供的录像(其摄像头可以远 保期内,要求供应商提供设备的专业维护保养。此外.要健全教 程变焦、360度自动旋转)、回放、自动保存、更新都可通过内网 育技术中心人员管理制度.要求技术中心的技术人员对多媒体 实时传递.同时还可以通过大屏幕背投系统同时监看所有多媒 体教学系统。监控信息可经过系统录制、编辑后.作为节目源供 播放或点播 f31网控子系统 网控管理子系统能显示计算机桌面内容并能接管键盘和鼠 标,进行远程控制,进行系统病毒库升级、远程排查故障等。从而 实现实时维护的效果 具有网络对拷功能.可以快速将一台机器 上安装好的系统部署到整个教学系统的任意计算机上。网控系 统通过发射端收集所有网卡的MAC地址.在发射端进行排序. 教室制定合理计划维护时间,严格进行定期巡查、不定期抽查, 既保证不影响正常教学,又保证设备得到及时、有效的维护。[31 4.2规范各特定群体对象的培训内容。 针对任课教师的培训内容主要是多媒体课件的基础制作方 法,多媒体设备的正确使用方法、步骤以及常见故障的应急处理 办法。针对教务管理人员的培训主要是编排课程表的依据.教学 监管方式方法等 针对多媒体技术人员的培训主要是设备的保 养技术.常见故障的维修等.在此基础上还应不定期要求技术人 员参与相关专业技能的培训 然后将参数传递过去.就能将所有的计算机的IP地址进行自动 4-3增强技术人员与教师的配合 分配、修改并固定下来、通过传递参数还能实现批处理修改计算 由于技术人员多为电教.教育技术专业毕业.所以基本上掌 机名、设置DNS和网关等 P-I 握了比多数教师更为熟练的多媒体课件制作技能.为此.完全可 f41实时录播系统 以要求技术人员在完成多媒体技术维护的基础上.加强与教师 录播系统需配备红外人脸跟踪系统.只需一名操作人员就 的配合.共同完成高质量的多媒体课件.这样在无形之中会增加 可以在同一时间对多间多媒体教室进行实时录播工作.流媒体 多媒体设备使用者与管理者日常的交流.也能大大优化对多媒 课件自动生成子系统可以把整合叠加的监控子系统所获取视 体设备的管理效率 频、音频和计算机数据实时保存到远程服务器上.视频课件同步 5、结束语 录制、同步生成、同步直播、同步网络存储、实时点播。之后,在中 总之.莆田学院作为新兴本科院校,它有着良好的前景与发 央控制室可通过流媒体课件实时生成软件.将所需的内容进行 展前途.而校内多媒体教学系统的构建和管理工作.也决不是一 项单一的简单的工作。设备的完美配置、多媒体教学技术的普 整合、编辑,实现优势资源共享,适应宽带到窄带。 4、多媒体电教室的管理 及、教师运用多媒体技术水平的提高、技术人员的严谨维护、管 网络环境下多媒体教学系统构建完成之后.空间和时问上 理等.都需要我们在今后的实践中不断地努力与探索.多媒体教 的问题基本上可以解决了.这时就需要有个规范化的管理。就 学系统的构建和管理工作会向着科学化、规范化方向发展.最终 此.笔者做了以下归纳 使莆田学院的多媒体教学工作走向成熟 4.1完善的管理规章与标准的操作流程是科学管理的基础。 明确教师、教务管理人员、技术员各自的责任与要求;为教 参考文献: 1]莆田学院网站.http://202.101.111.195/ptu/yqzl/xxgk.hun1. 师制定科学合理的操作规程、为教务管理人员制定排课。监管教 [[2]马青玉.多媒体教学智能控制系统的设计.南京师范大学学报(工程技 学质量流程和制定管理员的维护、保养操作规程。 2003(3) 为避免学生在非上课期间擅自使用多媒体设备.或因教师 术版).[3】王跃江.试论多媒体教室管理技术人员的素质.实验科学与技术.2008 在上课后忘记关闭设备.而多媒体技术人员又未能及时发现此 3) 情况.而使多媒体设备长期无效运行。应建立多媒体教室使用安 (一+-—+一-+一+一+一-+-一+-+-+-+一+o+・— -——+一-+-+一+-+-— ・ (上接第158页) 4)安装VsT0运行库 安装完运行环境后.为了使我们编写的项目能够在客户机 器上正常使用.还必须配置.NET安全系统。让客户机器将Excel 工作簿程序集作为完全信任的代码。对程序代码进行强名称签 名.客户机会将程序集作为完全信任的代码给予放心地执行相 关代码。只需在项目属性窗口中。选择”签名”面板,选择为”程序 集签名”.根据操作进行配置。 由于Excel工作簿项目是基于文档的解决方案.可以在项 目文件夹下”bin\debu ”下找到”excelWorklxmkMenu.xls”和”ex. eelWorkbookMenu.dll”两个文件.在打开”excelWorkbookMenu. 】【ls”文件时.该文档会自动词用.dⅡ程序集,实现将自定义的菜单 项显示在excel系统菜单中,因此,在客户机上要运行该文档,将 这两个文件都复制到相应的客户机上.打开”excelWorkbook. Menu.xls”文档。出现如图l所示界面。可以看到出现了自定义 菜单项和自定义按钮,当单击了【我的菜单】/【大写金额】菜单项 或”大写转换”按钮时.会自动将合计单元格中的小写金额写入 到”e12”单元格中 图l程序运行效果 参考文献: 1.Kathleen McGrath.Paui Smbbs著.VSTO开发者指南.机械工业出版社. 2oo9. 3.结束语 本文利用一个简单的例子说明了通过添加菜单项和工具栏 行基于Excel,Word,Outlook,lnfoPath的Ofifce开发.电子工业出版社. 按钮实现扩展Excel办公软件的功能,在Word软件中,按相类 2o08. 似的方法也能实现。VSTO技术是基于.NET平台,借助.NET平 3.苑青.孔捷.冷静.利用VSTO和.NET的OFFICE开发技术.电脑编程 台的强大功能和Office应用程序的丰富对象模型.可以设计出 技巧与维护.2oo9.2. 实现复杂业务逻辑的企业级Office解决方案。 2.Eric Carter.Eric Lippert.VSTO开发指南一一使用Visual Basic 2005进