PPT中VBA编程制作随机抽题系统

PPT中VBA编程制作随机抽题系统


2024年4月30日发(作者:)

ISSN1009-3044

ComputerKnowledgeandTechnology

电脑知识

电脑知识

与技术

与技术

Vol.12,No.30,October2016

E-mail:wltx@

第12卷第30期(2016年10月)

Tel:+86-551-6569

PPT中VBA编程制作随机抽题系统

侯伟,吴锦杨

*

,袁龙华

(湖南工学院材料与化学工程学院,湖南衡阳421002)

摘要:本随机抽题系统以毕业答辩为例结合VBA编程和微信公众号互联网技术,改变了传统活动现场环节中的纸质化抽

签及抽题的形式,同时还具有答题倒计时功能。本随机抽题系统可适用于毕业答辩、课堂教学互动、晚会现场抽奖、教学

知识竞赛、面试随机抽题等需要随机抽签或抽题的场合。该系统能够使每一位在场用户通过投影仪屏幕同时看到随机所

抽题目,相比传统纸质抽题更公平公正。

关键词:VBA编程;随机抽题;随机抽签;微信公众号;倒计时

中图分类号:TP37文献标识码:A文章编号:1009-3044(2016)30-0100-03

DOI:10.14004/.2016.4234

1背景意义

随着电子行业的突飞猛进,计算机及其应用软件走进了人

们的生活,我们应该充分利用电子产品资源。例如,在高校毕

业答辩、研究生入学面试等各个抽题环节中一般采用纸质化抽

题,这样不仅浪费纸张、浪费碳粉,同时打印机在打印过程中所

消耗电能以及微细碳粉对环境产生的危害也不可忽视。我国

仍有大部分地区实行火力发电,需要消耗煤炭,而纸张来源于

树皮,这些纸张、电能的消耗都间接导致温室效应,不符合国家

长期发展的要求。通过微信公众号,学生在答辩环节中还可以

参与投票表决互动,选出自己认为最佳答辩毕业生。在高校研

究生面试、企业面试、教学知识竞赛、晚会比赛等活动中,通过

使用本系统中引用的二维码技术仍然可以满足不同用户的需

求。

图1本随机抽题系统示意图

表1随机抽题系统功能显示部件具体名称

2技术方案

本随机抽题软件可根据参赛选手总人数,自动设置抽签数

量,参赛选手只需要点击“开始抽签”控制按钮便可随机滚动生

成签号,此时系统状态输出显示器会显示“正在抽签”,点击“停

止抽签”控制按钮即可获得自己的抽签结果,此时系统状态输

出显示器会显示“您抽的是×号签”。参赛选手点击“开始抽题”

控制按钮时便可高速滚动显示题目编号,此时系统状态输出显

示器会显示“正在抽题”,参赛选手点击“停止抽题”控制按钮即

可随机不重复获得一个题目编号,此时系统状态输出显示器会

显示“请您回答×号题”。此时点击“打开题目”控制器即可查看

自己抽取的题目,参赛选手回答题目的同时,系统自动进入

120s倒计时阶段,参赛选手回答完毕题目之后可以点击“参考

答案”触发控制按钮得知自己回答正确与否,并且可以点击“继

续抽题”触发控制器按钮进行下一轮抽题环节,所有题目抽取

完毕之后,系统会自动弹框提醒参赛选手“题目已抽完,请点击

初始化重新抽题!”

3代码内容

PPT中使用VBA方法目前已经有较多参考文献讲述,在此

不再详述,本次随机抽题所用VBA编码如下:

DimCanbeuse,QuestionNum1,QuestionUsed1,Question⁃

Num2,QuestionUsed2,arrRM,FCQXS,FAsInteger

DimflagAsBoolean

PrivateSub抽取框_Change()

EndSub

PrivateSub初始化_Click()

CallCQ_do1("stop")

CallCQ_do2("stop")

Canbeuse=1

收稿日期:2016-08-05修回日期:2016-09-15

基金项目:湖南省重点学科建设项目资助(“湘教发[2011]76号”);基于粉煤灰制备的功能型矿物掺合料及其在混凝土中应用研究

(湖南省教育厅16C0429)

作者简介:侯伟(1986—),男,吉林梅河口人,硕士,湖南工学院材料与化学工程学院,助教,研究方向—无机非金属材料;

通讯作者:吴锦杨(1987—),女,湖南株洲人,硕士,湖南工学院材料与化学工程学院,助教,研究方向—高分子材料。

100

计算机教学与教育信息化

本栏目责任编辑:王力

第12卷第30期(2016年10月)

取框.ForeColor=&HC00000

抽取框.Text="圆融"

已抽题目.Text=""

已抽签.Text=""

文字描述

Me.

.Text

Me.

开始抽签

="勤学务实卓越"

QuestionNum2

开始抽题

.Caption

.Caption

="开始抽签"

题目总数

=

="开始抽题"

-

End

.Text=QuestionNum2

1

Private

Sub

抽取框

Sub

If

Me.

Me.开始抽签

.ForeColor

开始抽签

.Caption

=&HFF&

_Click()

="停止抽签"

Call

开始抽签.Caption="开始抽签"

Then

Else

CQ_do1("stop")

Me.

Call

开始抽签.Caption="停止抽签"

End

CQ_do1("start")

End

If

Private

Sub

QuestionNum1

SubCQ_do1(doTag)

QuestionUsed1

=总人数.Text

Canbeuse

=Split(Me.已抽签,",",

If

F

doTag=

=

"start"

1

-1,1)

Then

If

=

Dim

UBound(QuestionUsed1)

0

Randomize

nAsInteger

Do

'初始化随机函数

'Sleep

置为从

n=

1-QuestionNum

Int((QuestionNum1)

30

里抽取

*Rnd+1)'n为随机抽取的数值,设

抽取框

If

.Text=n

文字描述

开始抽签.Caption="开始抽签"Then

Else

.Text="您抽的是号签"

文字描述

End

.Text="正在抽签"

If

If

Dim

F=

Canbeuse

J,

1

m

Then

For

m

J=1To

=1

If

Canbeuse

QuestionUsed1(J

=QuestionUsed1(J

UBound(QuestionUsed1)

-1)

Exit

=0

-1)=nThen

Else

For

End

Next

If

If

已抽签

Canbeuse

ExitDo

=已抽签

=1Then

+抽取框.Text+","'题目标记用,分隔

本栏目责任编辑:王力

ComputerKnowledgeandTechnology

电脑知识

与技术

End

End

If

DoEvents

If

Loop

Else

MsgBox

End

("抽签结束,请准备抽题。")

Else

If

F

End

=1

End

If

Private

Sub

抽取框

Sub开始抽题

If

Me.

Me.

.ForeColor=&HFF&

_Click()

Call

开始抽题

开始抽题

.Caption

.Caption

=

=

"开始抽题

"停止抽题

"

"Then

Else

CQ_do2("stop")

Me.

Call

开始抽题.Caption="停止抽题"

End

CQ_do2("start")

End

If

Private

Sub

QuestionNum2

SubCQ_do2(doTag)

QuestionUsed2

=

Canbeuse

=

Split(Me.已抽题目,",",-1,1)

-1

If

F

doTag=

=

"start"

1

Then

If

=0

Dim

UBound(QuestionUsed2)

Randomize

nAsInteger

Do

'初始化随机函数

'Sleep

置为从

n=

1-QuestionNum

Int((QuestionNum2)

30

里抽取

*Rnd+1)'n为随机抽取的数值,设

抽取框

If

文字描述

开始抽题

.Text=n

Else

.Text

.Caption

="请您回答

="开始抽题

号题

"Then

"

文字描述

End

.Text="正在抽题"

If

Dim

F=

If

1Then

Canbeuse

J,m

For

=1

m

J=1ToUBound(QuestionUsed2)

If

Canbeuse

QuestionUsed2(J

=QuestionUsed2(J-1)

Exit

=

-1)=nThen

Else

For

0

End

Next

If

If

已抽题目

Canbeuse

=

=

已抽题目

1Then

+抽取框.Text+","'题目标记用,

计算机教学与教育信息化

101

ComputerKnowledgeandTechnology

电脑知识

与技术

分隔

Exit

End

Do

End

If

DoEvents

If

Loop

Else

MsgBox

End

("题目已抽完,请点击初始化重新抽题!")

Else

If

F

End

=1

End

If

Private

Sub

If

Sub打开题目

MsgBox

抽取框

ElseIf

("

.Text

请先抽题!

="圆融

_Click()

")

"Then

MsgBox

开始抽题

ElseIf

("请点击停止抽题!

.Caption="停止抽题

")

"Then

MsgBox

开始抽签.Caption="停止抽签"Then

Else

("抽题环节请勿抽签!")

取框

ide

End

.Text+

Val(抽

4结论

End

If

1)

Sub

与现有技术相比,本次设计的随机抽题系统具有以下优

点:

钮自动查询数据库题目数量,

1)无需用户手动统计题目总数量,

并将题目数量发送至抽题控制

通过“初始化”控制器按

器,实现将抽取题目编号变化范围自动限定在题目总数量以内

102

计算机教学与教育信息化

第12卷第30期(2016年10月)

功能。

环使用,

2)本随机抽题软件不仅可保存用户抽题记录,

“初始化”控制器按钮可以直接向处理器发送清除指

还可多次循

令,快速清空抽签记录以及抽题记录,从而实现下一轮的抽签

与抽题功能。

Me

3)将“开始抽签”和

制器显示为

指令监测当前抽签控制器活动窗口是否激活,

“停止抽签”按钮集成为一个按钮,通过

“停止抽签”按钮,否则控制器显示“开始抽签”

如果激活控

钮,相比于现有的“开始抽签”和“停止抽签”控制器按钮分别独

立设计而言,

按钮时,

4)可随时输出抽题活动状态,

减少了屏幕面积占用比例,提高屏幕美感。

系统状态输出显示器显示为

用户点击

“正在抽题”

“开始抽题”

,点击“停止抽

控制器

题”控制按钮之后,系统状态输出显示器显示为“请您回答×号

题”。

端每次都会将抽到的签号及题号反馈到

5)用户可以随时查阅抽签或抽题记录,

“已抽签号”

系统状态输出显示

及“已抽题

目”显示器。

具有占用空间小,

6)本随机抽题系统采用

无需用户安装,

PPT

可在任何装有

格式相比于传统的

office

exe

的电脑上

格式,

使用等优点,用户课根据自己实际情况修改PPT参数及幻灯片

背景等,无需单独学习即可掌握相关使用技巧。

参考文献:

[1]

[2]

王琳

郜亚丽

.PPT轻松实现随机抽题[J].电脑爱好者,2012(17):68-68.

[3]

公自动化

.巧用VBA编程实现PPT演示文稿的智能交互[J].办

陈江.PPT2010

:综合版

编程实现随机抽题

,2010(10):46-48.

[J].电脑编程技巧与维护,

[4]

2016(7):12-12.

吴安洪,胡维康.在PPT中巧用VBA进行考题的抽签[J].中学

[5]

时代

241.

朱建国

,2013(21):211-211.

.PPT新视角[M].北京:电子工业出版社,2013:189-

本栏目责任编辑:王力


发布者:admin,转转请注明出处:http://www.yc00.com/web/1714461374a2450994.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信