除Excel外,在Microsoft Office系列软件中,均可插入Excel图表对象,这其实是采用了将Excel工作簿嵌入到其他软件中显示的OLE技术,可调用Excel直接编辑,这为我们将Excel图表跨软件显示和编辑带来了极大的方便。

Excel协调共生:嵌入式应用-Excel22

插入Excel图表对象

无论Microsoft Office系列软件的版本及软件,在“插入>对象”中,我们可以在“新建”选项卡中选择“Microsoft Excel图表”对象,确定后即可调用Excel来创建一个Excel图表(Excel除外)。亦可在“由文件创建”选项卡中选择一个已经包含Excel图表的工作簿,嵌入到相应的程序文档中。如图16.1-1所示(:不同版本,对话框界面会有少许差异,但操作及内容完全相同)。

Excel协调共生:嵌入式应用-Excel22

图16.1-1 Microsoft Office软件的对象插入对话框

如果要将Excel图表通过该方式嵌入到其他软件,建议将图表置于Excel的图表工作表中,这样可以非常方便地控制图表的显示窗口。当对象插入后,我们即可使用“单击鼠标右键>图表对象>[编辑]”来进行图表的直接编辑,只要熟悉Excel图表制作,在其他Microsoft Office系列软件中操作和在Excel中没有两样,图16.1-2的案例演示了在PowerPoint 2010中嵌入Excel图表。如果使用图表对象的[打开]按钮,则可在Excel中打开进行编辑,该方法可以将嵌入的工作簿另存到磁盘,图表对象的[转换]按钮对于Excel图表则无实质意义。

Excel协调共生:嵌入式应用-Excel22

图16.1-2 PowerPoint 2010中嵌入Excel图表的演示

一般直接复制Excel图表并粘贴到同版本的PowerPoint软件中时,Office也采用对象嵌入方式进行粘贴,且此时,展示图表复制到了嵌入工作簿对象的图表工作表中。同样的操作,在其他Microsoft Office系列软件中,视版本会有不同的处理机制,在Microsoft Office 2007和2010系列软件中,Excel图表已经变为一个公共组件,可以被其他大多数的Microsoft Office程序所支持。

VBA操作Excel图表对象

一般不建议将动态交互式Excel图表嵌入到其他软件中,因为Excel的所有交互将不再起作用,这种嵌入技术仅是一个Excel图表的展示窗口而已。要实现交互就必须使用VBA来操作这些OLE对象,这种操作通过后台对Excel的调用来完成。此方法的交互触发控件需要放在嵌入图表的宿主文档中,而不应该放在嵌入的Excel工作簿中。

这类应用仅在幻灯演示中有一定使用价值,图16.1-3的案例是一个在PowerPoint中嵌入Excel图表,配合窗体控件实现的交互式幻灯演示图表。实现过程主要借助VBA完成,涉及幻灯片的事件操作和OLE对象编辑。其中VBA处理幻灯片事件借助了类模块来实现,目的是关闭Excel软件,并释放Excel对象的后台调用,在幻灯演示结束和关闭演示文稿时触发事件。以下是制作步骤:

Excel协调共生:嵌入式应用-Excel22

图16.1-3 PowerPoint中嵌入Excel图表制作的交互式幻灯演示

1.在幻灯片中插入已经制作完成的Excel交互式图表工作簿对象,调整好显示界面窗口的大小。

2.在幻灯片中插入以下窗体控件:1个下拉列表框、两组选项按钮。每组选项按钮各两个,并使用置于底层的矩形自选图形区隔。在选项按钮属性对话框中,分别修改Caption属性为“2009”、“2010”、“昆山”、“东莞”。

3.按下键盘Alt+F11组合键打开VBE编辑器,插入一个模块,并键入以下代码:


程序代码:16.1-1 模块1的公有变量申明

Excel协调共生:嵌入式应用-Excel22


4.选中下拉列表框控件,单击鼠标右键>查看代码,激活VBE编辑器,在Slide1中键入以下代码:


程序代码:16.1-2 Slide1的InitializeSlidel初始化过程

Excel协调共生:嵌入式应用-Excel22


:此处使用循环遍历OLE对象名称的方法是因为,不同的电脑所显示的默认对象名称会出现差异,如果是使用PowerPoint 2007及其以上版本,建议在“开始>选择>选择窗格”中将对象名称改为固定名称。


程序代码:16.1-3 Slide1的ComboBox1_Change下拉列表更改

Excel协调共生:嵌入式应用-Excel22


程序代码:16.1-4 Slide1的ComboBox1_GotFocus下拉列表获得焦点

Excel协调共生:嵌入式应用-Excel22


程序代码:16.1-5 Slide1的OptionButton1_Click选项按钮1被选中

Excel协调共生:嵌入式应用-Excel22


程序代码:16.1-6 Slide1的OptionButton1_GotFocus选项按钮1获得焦点

Excel协调共生:嵌入式应用-Excel22


程序代码:16.1-7 Slide1的OptionButton2_Click选项按钮2被选中

Excel协调共生:嵌入式应用-Excel22


程序代码:16.1-8 Slide1的OptionButton2_GotFocus选项按钮2获得焦点

Excel协调共生:嵌入式应用-Excel22


程序代码:16.1-9 Slide1的OptionButton3_Click选项按钮3被选中

Excel协调共生:嵌入式应用-Excel22


程序代码:16.1-10 Slide1的OptionButton3_GotFocus选项按钮3获得焦点

Excel协调共生:嵌入式应用-Excel22


程序代码:16.1-11 Slide1的OptionButton4_Click选项按钮4被选中

Excel协调共生:嵌入式应用-Excel22


程序代码:16.1-12 Slide1的OptionButton4_GotFocus选项按钮4获得焦点

Excel协调共生:嵌入式应用-Excel22


5.在VBE编辑器中插入一个类模块“EventClassModule”,并键入以下代码:


程序代码:16.1-13 EventClassModule的App_PresentationClose幻灯文档关闭事件

Excel协调共生:嵌入式应用-Excel22


程序代码:16.1-14 幻灯片结束放映事件

Excel协调共生:嵌入式应用-Excel22


程序代码:16.1-15 彻底释放Excel对象

Excel协调共生:嵌入式应用-Excel22


:若不及时释放Excel对象,在演示结束,再次演示时,交互效果将无法实现。

Microsoft Graph图表对象

当安装Office系列软件时在“Office工具”中勾选了“Microsoft Graph”(正常而言,该选项默认选中),则可在Office软件的安装目录下找到Excel协调共生:嵌入式应用-Excel22程序,该对象完全是一个OLE程序,无法直接执行,必须在其宿主程序中执行。在Microsoft Office系列软件2007版本以前,单击PowerPoint菜单的Excel协调共生:嵌入式应用-Excel22按钮,所插入图表为Microsoft Graph图表对象。

在Microsoft Office系列软件2007和2010中,若没有安装Excel,将会插入Microsoft Graph图表,这和通过“插入>对象”命令插入一个“Microsoft Graph图表”没有两样,该程序的图表制作及设置和Excel 2003几乎完全一致,唯一不同的是其使用自带的数据表来存储数据。虽然这个程序相较Excel图表要简单和便于操作,但使用该程序来制作图表,相较Excel还是有一定局限,同时该程序制作的图表也无法转换为Excel图表。该程序的界面如图16.1-4所示:

Excel协调共生:嵌入式应用-Excel22

图16.1-4 在PowerPoint 2010中嵌入Microsoft Graph图表

在默认状态下,插入Microsoft Graph图表会创建一个显示示例数据的示例图表,需要双击嵌入的图表对象,向Graph数据工作表中逐个单元格手动输入实际数据,包括行标题和列标题。也可以在Graph对象为激活状态下,在“编辑”菜单上单击“导入文件”,在“导入数据”对话框中选择文件,把Excel工作簿或者其他文件的数据导入到Microsoft Graph图表数据表中。

知识扩展


推荐在PowerPoint中使用的一个图表插件:

Think-cell是一个基于Microsoft Graph的图表插件,可生成专业的咨询图表,配色和图表操作都很优秀。该软件可在PowerPoint和Excel中使用,以下是链接地址:

http://www.think-cell.com/