EXCEL数字动画

软件老王

共 3262字,需浏览 7分钟

 · 2021-03-02

excel数字动画教程

今要教的是在EXCEL里,数字变化的动画

今天要做一个用EXCEL做数字动画,写这个教程的原因是,我儿子之前教他是scratch的编程,但是那个编程学后,对小孩来说入门很容易,但是后续我也不知道应该教什么好。而且scratch可视化编程,都是拖拉拽没有什么底层编程,所以我想找高级一点的编程。如果用C的话又太高级,小孩很难理解,而且没什么视觉效果,对小孩又太过枯燥,所以我想选了有EXCEL里做VBA编程,这次要实现的效果如下图:

8401be96f452364e5c90415d550315f1.webp

画图原理说明

以画0为列说明:如上图,画0是先在N6:Q16画一个黑框,然后把黑框上的中间去掉颜色,0就画好了。

4762659db24736817fa04474cf63b45e.webp

实现步骤

  • 设置列宽

02c556a435ea122ba2698adb8c04e4f5.webp

  • 打开VBA编程页面

7f8e344d28094b1076b15a5ecbecd0a7.webp

点击开发工具->Visual Basic打开

6f010ef595fd4072dc608be70ec901e5.webp

双击sheet1打开编程页面,并写入代码(代码见后续说明)

  • 画0代码说明:

'相关画0代码,第一行为N6到Q16画一个绿色的框,第二行是O7:P15将画的绿色擦除。

Range("N6:Q16").Interior.Color = vbGreen
Range("O7:P15").Interior.Pattern = xlNone

有人可能会问,我这里可以和写字一样,一笔笔画可以不,答案是:当然可以,但是大多数字会增加不少步骤,以0为例,以上方法只要两个步骤,但是一笔笔画要画4个步骤。但1例外。

  • 暂停代码说明

Sub stoptime()  '暂停1秒
 t = Timer
 While Timer < t + 1
   DoEvents
 Wend
End Sub

在代码中画每个字的中间需要暂停一段时间,不然由于程序执行太快,执行时只能看到最后一个字。以上代码是暂停一秒,大家也可以按照自已喜好修改暂停时间。另外暂停后,别忘记将前面的字给擦除掉,不然下个字跟上一个字就混在一起了。

'擦除整个画的区域颜色
Range("N6:Q16").Interior.Pattern = xlNone
  • 最后一步设置

回到页面,点击开发工具->插入->按钮

76893df36a7a1ee8bcb3ff89040de708.webp

在EXCEL里画一个按钮,并选择动画代码

54389bb7349ca84701b149791dfc338f.webp

好了,动画做好了,点击下按钮欣赏下自已做的数字动画吧。

实现全部代码

Sub stoptime()  '暂停1秒
 t = Timer
 While Timer < t + 1
   DoEvents
 Wend
End Sub

Sub donghua()
   
   '对画的区域进行样式清空
   Range("N6:Q16").Interior.Pattern = xlNone
   stoptime
   
   '写0
   Range("N6:Q16").Interior.Color = vbGreen
   Range("O7:P15").Interior.Pattern = xlNone
   'Range("N12:P16").Interior.Pattern = xlNone
   
   stoptime
   Range("N6:Q16").Interior.Pattern = xlNone
   
   '写1
   Range("N6:O6").Interior.Color = vbRed
   Range("O7:O16").Interior.Color = vbRed
   Range("N16:P16").Interior.Color = vbRed
   
   stoptime
   ' Cells(row, col).Interior.Color = 5296274
   Range("N6:Q16").Interior.Pattern = xlNone
   
   '写2
   Range("N6:Q16").Interior.Color = vbBlue
   Range("N7:P10").Interior.Pattern = xlNone
   Range("O12:Q15").Interior.Pattern = xlNone
   
   stoptime
   Range("N6:Q16").Interior.Pattern = xlNone
   
   '写3
   Range("N6:Q16").Interior.Color = vbBlack
   Range("N7:P10").Interior.Pattern = xlNone
   Range("N12:P15").Interior.Pattern = xlNone
   
   stoptime
   Range("N6:Q16").Interior.Pattern = xlNone
   
   '写4
   Range("N6:Q16").Interior.Color = vbCyan
   Range("O6:P10").Interior.Pattern = xlNone
   Range("N12:P16").Interior.Pattern = xlNone
   
   stoptime
   Range("N6:Q16").Interior.Pattern = xlNone
   
   '写5
   Range("N6:Q16").Interior.Color = vbGreen
   Range("O7:Q10").Interior.Pattern = xlNone
   Range("N12:P15").Interior.Pattern = xlNone
   
   stoptime
   Range("N6:Q16").Interior.Pattern = xlNone
   
   '写6
   Range("N6:Q16").Interior.Color = vbGreen
   Range("O7:Q10").Interior.Pattern = xlNone
   Range("O12:P15").Interior.Pattern = xlNone
   
   stoptime
   Range("N6:Q16").Interior.Pattern = xlNone
   
   '写7
   Range("N6:Q16").Interior.Color = vbGreen
   Range("N7:P16").Interior.Pattern = xlNone
   'Range("N12:P15").Interior.Pattern = xlNone
   
   stoptime
   Range("N6:Q16").Interior.Pattern = xlNone
   
   '写8
   Range("N6:Q16").Interior.Color = vbGreen
   Range("O7:P10").Interior.Pattern = xlNone
   Range("O12:P15").Interior.Pattern = xlNone
   
   stoptime
   Range("N6:Q16").Interior.Pattern = xlNone
   
   '写9
   Range("N6:Q16").Interior.Color = vbGreen
   Range("O7:P10").Interior.Pattern = xlNone
   Range("N12:P16").Interior.Pattern = xlNone
   
   stoptime
   Range("N6:Q16").Interior.Pattern = xlNone
   
End Sub

如果决定我的教程有用,就扫描一下二维码关注我,后续会有更多简单好学的编程。

浏览 58
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报