《演示中动态控制内嵌图表显示.ppt》由会员分享,可在线阅读,更多相关《演示中动态控制内嵌图表显示.ppt(5页珍藏版)》请在三一办公上搜索。
1、在excel中可以通过窗体或ActiveX控件达到动态控制图表显示的目的,但当Excel图表作为对象内嵌到PPT后,在PPT播放模式下,所有在Excel对象中的控件都是不可选的,只能在PPT的编辑模式下双击对象后在Application.Excel中进行控制。那么怎样才能在PPT播放模式下可以控制插入的Excel图表动态显示?一个方法是借助PPT中的VBA编程,用PPT中的ActiveX控件(注意在PPT中没有窗体工具中的控件)控制内嵌的Excel对象中的相关单元格区域,达到动态控制。这里指的ActiveX控件就是在“视图工具栏控件工具箱”中的控件。下面介绍具体的步骤:1.在PPT的编辑模式下
2、需要插入图表的页面中用“插入对象Microsoft Excel图表”插入一个内嵌的Excel图表,编辑数据及图表(最好是用一个图表工作表显示图表),用一个工作表中的单元格放入数据作为控制图表显示的单元格(这个只是为了方便理解,其实用VBA不要辅助单元格也可以直接改变图表数据引用的)。2.退出Excel编辑,在PPT选择“视图工具栏控件工具箱”打开“控件工具箱”,在图表所在页插入一个组合框。插入“组合框”控件后,按Alt+F11就可以在VBE中看到工程中显示出了一个Slide对象(只有加入了ActiveX控件后才能在工程资源管理器中出现Slide对象),如图,点击看相关页面,3.在VBE的Sli
3、de对象相应的模块中加入如下代码:Option Explicit声明公共变量Dim Wb As Object,Sh As Object,SouceRng As Object,TarCell As Object当控件获得焦点时运行Private Sub ComboBox1_GotFocus()Dim i As Integer 设置Wb为内嵌的Excel工作薄,Sh为指定工作表,SouceRng和TarCell为指定单元格区域 Set Wb=Me.Shapes(1).OLEFormat.Object Me表示正在播放的Slide Set Sh=Wb.worksheets(sheet1)Set So
4、uceRng=Sh.Range(B1:D1)Set TarCell=Sh.Range(F1)With ComboBox1 先清除列表 If.ListCount 0 Then.ListIndex=-1 For i=.ListCount-1 To 0 Step-1.RemoveItem i Next i End If 加入列表项 For i=1 To SouceRng.Count.AddItem SouceRng.offset(0,i-1).Range(A1)Next i 选择第一项.ListIndex=0 修改TarCell单元格中的值 TarCell=.Value End WithEnd Su
5、b,提示:使用后期绑定,所以可以不在VBE的“工具引用”中对Excel库进行引用。这是考虑对不同Office版本的通用性,如果可以确定版本,还是先引用Excel库,再用先期绑定好,编程中有自动对象列表,运行速度和稳定性也要高。,4.在VBE的Slide对象相应的模块中再加入如下代码:当控件失去焦点时运行释放对象变量Private Sub ComboBox1_LostFocus()Set TarCell=Nothing Set SouceRng=Nothing Set Sh=Nothing Set Wb=NothingEnd Sub当控件值改变时运行对内嵌工作薄单元格的改变Private Sub ComboBox1_Change()改变内嵌工作薄中相应单元格的值 TarCell=ComboBox1.ValueEnd Sub,点击返回,谢谢观看!供大家参考。,