ppt编写一个抽奖系统_人人都能写的基于PPT的抽奖程序 篇三:为2019年制作一个优雅且功能全面的年会抽奖PPT...

本文介绍了如何利用PPT编写一个功能全面的抽奖程序,包括解决常见错误、一次性抽取多个人、修改PPT布局以适应不同奖项,以及将文本框变为透明。此外,还提供了将特定奖项指定给特定人员的思路,但不提供作弊代码。通过这些步骤,读者可以创建一个公平且易于定制的年会抽奖系统。
摘要由CSDN通过智能技术生成

本篇的目的以及需要解决的问题:

已知错误的分析和排查

如何一次抽取多名获奖者

把抽奖PPT修改成“一页抽一个奖项”(像篇一的头图那样)

如何把篇一中的白底文本框变成透明文本框

简单探讨如何把某一奖项指定给某一个人或某几个人

目前来看,大家碰到最多的问题是“Cannot find the name list file”,当然主要原因是我的代码不够严谨或者说容错机制不够。

文件名中包含“.txt”导致跟扩展名组成了“.txt.txt”

有时候我们的系统设置了“隐藏扩展名”,所以在保存这个namelist.txt的时候要注意选择“所有文件 (*.*)”,有些人可能习惯在桌面上右击新建一个文本文件再重命名,在隐藏扩展名的情况下,重命名应该改成“namelist”而不是“namelist.txt”,因为后一种情况下,它的实际文件名就是“namelist.txt.txt”导致找不到文件了。

抽奖PPT所在的完整路径中包含抽奖PPT的名称

听起来有点绕,举个例子。比如你的抽奖PPT名称是“2019年会抽奖.ppt”,然后它所在的目录是“D:2019年会抽奖.ppt”,换句话说它的完整路径是“D:Working2019年会抽奖.ppt2019年会抽奖.ppt”,这种情况下也会报找不到namelist.txt,因为在代码里使用了下面这段高亮的代码,程序会去尝试寻找“D:Workingnamelist.txtnamelist.txt”这个文件,当然就会报错了。解决的办法就是——确保抽奖PPT所在的目录结构中,没有哪一层目录名称包含PPT名称(含扩展名)。

OneDriver同步目录中的抽奖PPT

这是一个比较奇怪的现象,如果你使用Office 365套件或者OneDriver个人版,把抽奖PPT放到一个被同步到OneDriver云端的目录中,会无法获取正确的“ActivePresentation.FullName”属性,也会导致寻找namelist.txt失败。在这种情况下,“ActivePresentation.FullName”可能是一个网络路径,具体我也没去细细研究,只要知道解决办法就行了——把抽奖PPT和namelist.txt放到一个没有被同步到OneDriver的目录。换句话说,如果它们已经在OneDriver目录里了,把它们拷贝到另一个本地目录就行了。

用户定义类型未定义”的编译错误。

这种情况都是看文章不认真导致的

最后还要添加一个引用项,点击VBA窗口的菜单“工具引用”,勾选“Microsoft ing Runtime”,然后点击确定。

最后还要添加一个引用项,点击VBA窗口的菜单“工具引用”,勾选“Microsoft ing Runtime”,然后点击确定。

我暂时能想到的常见错误就这些了,如果还有其它的可以在评论区提出。另外还有一点需要注意——Office里面的VBA部分还是有点bug的,而且这种bug相对来说比较难调试,所以有两个建议:

确保在最终运行该抽奖PPT的电脑上进行抽奖PPT的制作和调试,千万不要在电脑A(Office版本a)上制作,然后到电脑B(Office版本b)上面去运行,电脑之间的差异可能无关紧要,但不同版本的Office之间很可能有意想不到的差异。

在保证上述第1条的前提下,尽可能使用最新版本的Office。

在保证上述2条的前提下,尽可能使用最新的文件格式(如.pptm),不要选择兼容模式。

在具体实现之前,让我们先把篇一中的基础功能版抽奖PPT做一些小的调整。首先,现在很多的电子屏幕都是16:9的宽屏了,为了投屏的时候有更好的效果,把PPT的页面调整为16:9。然后,再换一个合适的背景图片。最后再把控件的位置稍微调整一下。最终得到这样一样基础版PPT,本文的所有改动都基于这个基础版。

事实上在下图中的这个方法中本来就留有“一次获取多个随机值”的接口,只要给它传一个参数即可。比如一次抽取5名,则调用这个方法的时候用GetRandomString(5),它的返回是由逗号分隔的5个随机值组成的字符串。

具体来说,修改代码段C,改成这样。

因为上面修改了LoopString的调用方法,所以还要修改LoopString方法。找到代码段E,改成这样。

需要注意的是,这样修改之后,理论上“缺席”按钮已经不能再用了,因为现实中不太可能出现“5个人同时缺席”这种情

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值