VBA如何制作黑客帝国代码效果,学会这个技巧,可以炫耀了

VBA如何制作黑客帝国代码效果,学会这个技巧,可以炫耀了

首页模拟经营代号帝国更新时间:2024-05-11

黑客帝国里的经典一幕,形象地把代码流展示到屏幕上,让你感觉到数据变化有多么神奇。

严格来说,任何编程语文都可以实现这个场景,本节介绍一下,通过VBA代码实现的基本思路。

实现效果如下图所示,没有展示动态图片,感觉还有点不尽人意。

由于,动画不是十分连贯,总是少了一些感动。

如果哪位实现了更加平滑的效果,欢迎留言。

本示例通过Application对象的一些方法来实现,动态效果。

显示内容为26个英文大写字母,当然也可以换成任意喜欢的字符,0或1也是可以的。

如:

下面参考一下具体代码:

Public zArr(25)'定义存放字母数组 Public isTrue As Boolean Public r As Range Public Sub setValue() If isTrue Then Exit Sub Dim zi As Integer, ri As Integer, ci As Integer, xi As Integer, rxi As Integer zi = VBA.Int((25 - 0 1) * VBA.Rnd) 0 ci = VBA.Int((25 - 1 1) * VBA.Rnd) 1 xi = VBA.Int((20 - 1 1) * VBA.Rnd) 1 For ri = 1 To xi For rxi = 1 To xi - ri zi = VBA.Int((25 - 0 1) * VBA.Rnd) 0 ActiveSheet.Cells(ri, ci).Item(rxi).Value = zArr(zi) Next rxi If ri > 1 Then ActiveSheet.Cells(ri, ci).Offset(-1, 0).ClearContents Application.Wait (Now TimeValue("00:00:01")) DoEvents Next ri DoEvents Application.OnTime Now() TimeValue("00:00:01"), "setValue" End Sub

上述代码为实现动态效果的过程,存放在模块中。

这里需要做些的变量设置,本示例为26个大写字母,设置方法如下代码:

Dim zChr As Integer, zi As Integer zColor = 9 For zChr = 65 To 90 zArr(zChr - 65) = VBA.Chr(zChr) Next zChr

其中,zArr就是存放字母的数组变量。

按钮完整代码

Private Sub CommandButton1_Click() isTrue = False'设置终止程序条件变量 Application.DisplayAlerts = False Dim zColor As Integer Dim zChr As Integer, zi As Integer zColor = 9 For zChr = 65 To 90 zArr(zChr - 65) = VBA.Chr(zChr) Next zChr Set r = ActiveSheet.Range("A1").Resize(20, 26) With r .Interior.Color = 1 .Font.Color = RGB(12, 255, 12) End With If Not isTrue Then setValue Application.DisplayAlerts = True End Sub

代码中还有一个关键变量isTrue,是跳出循环的一个布尔变量,没有这个变量,程序会变成一个无限循环,结果就是一直循环出不来。

isTrue定义成全局变量,存放位置在模块中,Public isTrue as Boolean

整合完成就可以调试效果了。

总的来说,并不如其它代码实现效果好,如果用JS就十分可观了。

但是,主要是对整个过程的思路进行一下探索,并没有太高尚的意义。

欢迎关注、收藏

---END---

,
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved