分享

用Excel制作更酷炫的动态图表(2.0版本)| 附实操

 成已成物 2020-05-25

在上一期的文章中,已经向大家介绍了一种让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( a , b),这样的过程就是需要有参数值过来才能运行的,包括a、b,这样才能执行Go里的代码

  • 其次是byval加在一个变量的前面,其实是英文by value的缩写,意思就是按值来传递即可,不实际更改变量a、b的值


可能大家还有个疑问:为什么一个过程在运行过程中,还能再运行一个新过程?

本次示例中,就是在Go过程执行的时候,还可以再运行一个PausePlay、EndPlay,这是为什么呢?

答案:秘诀就在DoEvents上,因为用了这个语句,就相当于在运行的过程中,还是有一小段时间,是把控制权转交给了系统,从而能够去Excel也去做其他的动作(包括运行新代码、刷新图表……),所以这个语句在此例中必不可少!

总结

Excel虽然很强大,但它确实也有它弱的地方,在本例中,你可以看到图表的渲染切换可能有不流畅的情况,这个是Excel底层的问题,没有办法去解决。

所以如果你想要做出更酷炫的动态图表,例如以下视频的效果,建议你明天晚上,5月24日20点(周日),来免费观看我们的直播,不需要代码,教你零基础做这种酷炫动态图表~

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多