在上一期的文章中,已经向大家介绍了一种让Excel图表自动走的酷炫效果~(上期文章的链接:酷炫+实用的动态图表,Excel进阶实操 | 附素材下载) 今天我们再来分享酷炫动态图表的2.0版本,这次将会添加了更多的人性化操作,增加【开始】、【暂停】、【结束】的功能。 以下是1.0版本的效果 这个图表也挺酷炫的了,如果在展示过程中,老板让暂停一下,这该怎么办?! 确实是个很实际的问题,一个合理的需求,我们肯定要想办法去实现,所以就有了以下的升级版本的效果: 以下是2.0版本的效果 怎么样?效果更酷炫吧~ 2.0版本满足了更多的实际场景:
2.0版本的制作过程我们还是沿用1.0版本的示例素材,整体的实现过程,分为两大步骤: 一、制作按钮首先要搞定三个功能按钮,分别是【开始】、【暂停】、【结束】 按钮怎么来?有2个办法: 1、我们可以从网络上去搜索相关的按钮图片,然后把图片导入到Excel中 2、在Excel中自己画按钮 我们使用方法2,Excel中的图形很多,其实我们是可以用图形去组合出按钮来: 我们先来解构一下按钮的组成元素: 【开始】:1个圆形 + 1个三角形 【暂停】:1个圆形 + 2条直线 【结束】:1个圆形 + 1个正方形 为什么这样画?大家参考一下音乐播放器的按钮,就明白了~ 好,用Excel图表画出来后,再分别调整各图形的颜色,我参考了交通灯的颜色 最后给各按钮分别增加一个文本框,分别写上文字【开始】【暂停】【结束】,然后单个按钮的所有图形,都组合在一起,按钮就制作成功了! 二、VBA代码环节在1.0版本中,我们是通过一个循环切换B2单元格中的值,来实现图表动态变化的。 而在2.0版本中,当然也是需要切换B2单元格的值,这个方向不会变的,但会有一些新的调整。 考虑到更科学地配置,我重写了1.0版本的代码,具体改成下图这样的: 2.0版本的代码 | 代码解释上面的绿色字已比较清晰地解释了,然后我再针对一些要点解释下: (代码内容我放在文末,大家可以自由复制使用即可,配合上一期文章中的素材,可以轻松实现) 1、公共变量 在模块级别的顶端,写下的Public语句,就是定义为公共的变量,例如PlayOn变量,我在PausePlay过程中把PlayOn设置为False后,那么也会传递到过程Go中,所以才能实现暂停、结束的功能。 这样用Public声明的变量是工程级的全局变量,可以在整个工程中所有的过程都公共使用。 2、过程调用过程 如果写一些复杂的程序,一般都会分模块地去实现,这样会让代码看起来更清晰,也方便后期的维护。在当前过程中调用另一个过程,方法很简单,只要用Call,后面加上过程的名称即可。 例如在Play过程中,就用Call Go这样的形式去调用了Go这个过程,当然其实Call是可以省略的,但为了看起来识别得更清楚,还是建议保留。 3、关于过程的参数传递 我们看到在Go过程中,它的过程名后面跟着(byval a , byval b),这是什么意思呢?
可能大家还有个疑问:为什么一个过程在运行过程中,还能再运行一个新过程? 本次示例中,就是在Go过程执行的时候,还可以再运行一个PausePlay、EndPlay,这是为什么呢? 答案:秘诀就在DoEvents上,因为用了这个语句,就相当于在运行的过程中,还是有一小段时间,是把控制权转交给了系统,从而能够去Excel也去做其他的动作(包括运行新代码、刷新图表……),所以这个语句在此例中必不可少! 总结Excel虽然很强大,但它确实也有它弱的地方,在本例中,你可以看到图表的渲染切换可能有不流畅的情况,这个是Excel底层的问题,没有办法去解决。 所以如果你想要做出更酷炫的动态图表,例如以下视频的效果,建议你明天晚上,5月24日20点(周日),来免费观看我们的直播,不需要代码,教你零基础做这种酷炫的动态图表~ |
|