PPT2016内嵌Excel的动态图表
来源:互联网 发布:linq 删除重复数据 编辑:程序博客网 时间:2024/05/18 15:30
- 背景
- 在excel中可以通过窗体或ActiveX控件达到动态控制图表显示的目的,但当Excel图表作为对象内嵌到PPT后,在PPT播放模式下,所有在Excel对象中的控件都是不可选的,只能在PPT的编辑模式下双击对象后在Application.Excel中进行控制。那么怎样才能在PPT播放模式下可以控制插入的Excel图表动态显示?一个方法是借助PPT中的VBA编程,用PPT中的ActiveX控件(注意在PPT中没有窗体工具中的控件)控制内嵌的Excel对象中的相关单元格区域,达到动态控制。
先在Excel中生成动态图表,方法参照这篇博客Excel2016制作动态图表,这里利用之前生成的动态图表嵌入到PPT中,用VBA编程调用excel中的数据,在PPT播放时展示动态图表,效果图:
1、在PPT中插入excel对象
点击插入–>对象–>选择由文件创建–>点击浏览,将之前做好的excel表格导入
导入之后,可以适当调整表格的位置
2、在PPT中插入组合框
开发工具 –>选择“组合框”
(若菜单没有“开发工具”选项,从文件—>选项—>自定义功能区,在右侧主选项卡区域下,勾选开发工具选项)
3、编写程序
插入“组合框”控件后,按Alt+F11就可以在VBE中看到工程中显示出了一个Slide对象(只有加入了ActiveX控件后才能在工程资源管理器中出现Slide对象),如下图:
- 在右侧代码区输入以下代码:
1、下面这段代码所做的事情,就是在每次 PPT 放映、下拉框被选择的时候,就去打开那个嵌入在 PPT 里的 Excel 文件,读取其中 sheet1工作表的 K2:K6范围,把这些选择项赋给下拉框。
注意需要结合自己的excel表修改上面粗体部分才行,第一个【sheet1】表示表格的第几个工作表,新建一个excel表时默认为sheet1,第二个【K2:K6】,这里放的是下拉框里的内容。这里需要将之前生成的excel表中 K2:K6区域的“1月,2月,3月,4月,5月”改为“1,2,3,4,5,”否则后面数据调用显示不正确。第三个修改【 Sh.Range(“C9”) = ComboBox1.Value】,本文的excel表C9单元格,放置的是引用数据,根据自己的设置修改此处。
代码段1
Option Explicit'声明公共变量Dim Wb As Object, Sh As Object, SouceRng As Object, TarCell As Object, ListRng 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 ListRng = Sh.Range("K2:K6") If ComboBox1.ListCount = 0 Then With ComboBox1 For i = 1 To ListRng.Count .AddItem ListRng.Cells(i) Next i End With ComboBox1.ListRows = ListRng.Count End If ComboBox1.ListIndex = 0 Sh.Range("C9") = ComboBox1.ValueEnd Sub
2、当用户下拉选择时,组合框的 change 事件就会被触发,执行这段代码,将下拉框的选择结果填写到嵌入的 Excel 文件的 dashboard 工作表的 A1 单元格,驱动模型动态切换图表。
代码段2
'当控件值改变时运行对内嵌工作薄单元格的改变Private Sub ComboBox1_Change() '改变内嵌工作薄中相应单元格的值 Set Wb = Me.Shapes(1).OLEFormat.Object Set Sh = Wb.worksheets("Sheet1") Sh.Range("C9") = ComboBox1.ValueEnd Sub
3、如果 PPT 翻页或者退出放映了,就关闭那个嵌入的 Excel 文件。
代码段3
'当控件失去焦点时运行释放对象变量Private Sub ComboBox1_LostFocus() Set ListRng = Nothing Set Sh = Nothing Set Wb = NothingEnd Sub
文档下载
资源下载
阅读全文
0 0
- PPT2016内嵌Excel的动态图表
- Excel动态图表
- Excel动态图表
- Excel动态图表
- Excel动态图表
- Excel图表制作(二):动态图表制作
- excel中添加动态图表
- Excel图表制作(二):下拉菜单实现动态图表
- Excel图表制作(二):滚动条实现动态图表
- 用控件快速构建Excel动态图表
- 用excel来做动态图表
- 使用Excel制作图表的实例教程 Excel图表制作大全
- 动态图表的实现问题
- Ext图表的动态生成
- Excel图表类型的修改技巧
- Excel画横坐标不均分的图表
- excel中批量生成图表的脚本
- Flash图表组件FusionCharts帮助文档十一:Excel静态数据变为动态图表
- 获取当前页面的类(最上层的类)
- Makefile经典教程(掌握这些足够)
- Map接口
- 深入理解 JavaScript 作用域和作用域链
- ubuntu编译opencv3和opencv2共存
- PPT2016内嵌Excel的动态图表
- javasctipt常用方法总结
- 集合中的快速失败
- 解决Android Button 字母自动全部大写的问题
- Template、ItemsPanel、ItemContainerStyle、ItemTemplate
- swift 中使用扩展实现代理
- [BZOJ]1069 [SCOI2007] 最大土地面积 凸包 + 旋转卡壳
- Sublime Text3安装
- Android模拟器创建与启动