当前位置:文档之家› PPT中动态控制内嵌图表的制作

PPT中动态控制内嵌图表的制作

演示PPT中动态控制内嵌图表显示 演示PPT中动态控制内嵌图表显示 PPT
chenjun 2005.3.31 在excel中可以通过窗体或ActiveX控件达到动态控制图表显示的目的,但当Excel图表作为对象内 嵌到PPT后,在PPT播放模式下,所有在Excel对象中的控件都是不可选的,只能在PPT的编辑模式下 双击对象后在Application.Excel中进行控制。那么怎样才能在PPT播放模式下可以控制插入的Excel图 表动态显示?一个方法是借助PPT中的VBA编程,用PPT中的ActiveX控件(注意在PPT中没有窗体工具 中的控件)控制内嵌的Excel对象中的相关单元格区域,达到动态控制。这里指的ActiveX控件就是在 “视图》工具栏》控件工具箱”中的控件。 下面介绍具体的步骤: 1.在PPT的编辑模式下需要插入图表的页面中用“插入》对象》Microsoft Excel图表”插入一个内嵌 的Excel图表,编辑数据及图表(最好是用一个图表工作表显示图表),用一个工作表中的单元格放入数 据作为控制图表显示的单元格(这个只是为了方便理解,其实用VBA不要辅助单元格也可以直接改变 图表数据引用的)。 2.退出Excel编辑,在PPT选择“视图》工具栏》控件工具箱”打开“控件工具箱”,在图表所在页插 入一个组合框。 插入“组合框”控件后,按Alt+F11就可以在VBE中看到工程中显示出了一个Slide对象(只有加入 了ActiveX控件后才能在工程资源管理器中出现Slide对象),如图
演示PPT中动态控制内嵌图表显示 演示PPT中动态控制内嵌图表显示 PPT
chenjun 2005.3.31 4.在VBE的Slide对象相应的模块中再加入如下代码:
‘当控件失去焦点时运行释放对象变量 Private Sub ComboBox1_LostFocus() Set TarCell = Nothing Set SouceRng = Nothing Set Sh = Nothing Set Wb = Nothing End Sub
‘当控件值改变时运行对内嵌工作薄单元格的改变 Private Sub ComboBox1_Change() '改变内嵌工作薄中相应单元格的值 TarCell = ComboBox1.Value End Sub
演示PPT中动态控制内嵌图表显示 演示PPT中动态控制内嵌图表显示 PPT
chenjun 2005.3.31
利润
160 140 120 100 80 60 40 20 0
一月 二月 三月 四月 五月 六月 七月 八月
利润
点击返回
九月
十月
十一月 十二月
演示PPT中动态控制内嵌图表显示 演示PPT中动态控制内嵌图表显示 PPT
chenjun 2005.3.31
谢谢观看! 谢谢观看! 供大家参考。 供大家参考。
点击看相关页面
演示PPT中动态控制内嵌图表显示 演示PPT中动态控制内嵌图表显示 PPT
chenjun 2005.3.31 3.在VBption 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 SouceRng = Sh.Range("B1:D1") Set TarCell = Sh.Range("F1") With ComboBox1 '先清除列表 提示:使用后期绑定,所以可以不在VBE If .ListCount > 0 Then 的“工具》引用”中对Excel库进行引用。 .ListIndex = -1 这是考虑对不同Office版本的通用性,如果 For i = .ListCount - 1 To 0 Step -1 .RemoveItem i 可以确定版本,还是先引用Excel库,再用 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 With End Sub
相关主题