ppt滚动动画随机选题
一、需求概述
最近在做个培训,想搞个课堂互动,准备好题库,然后在PPT实现模拟“滚动数字”随机选择题,并自动跳转到指定数字的题目页,页面显示答题倒计时,手动跳转到答案页。再次选择题目时,在剩余未选的题目中重新随机选题。最终效果如下:
二、实现思路
寒暄下,以前一直在word/excel进行vba开发,没有涉及ppt,百度搜索后发现原来ppt也可以vba开发,感觉新鲜的很O(∩_∩)O
1、将题目和答案分别按顺序都做成ppt幻灯片,然后通过“题目开始页码+随机数字=题目页码,答案开始页码+题目号=答案页码”来定位页面。
2、通过for循环语句+随机数来模拟滚动随机的数字效果。
Do While i < 50 '用来生成模拟数字滚动的动画
n = Int((x * Rnd) + 1) '用来生成总题目数随机数
Randomize
n = Int((x * Rnd) + 1) '用来再次生成总题目数随机数
TextBox5.Value = n
i = i + 1
Savetime = timeGetTime
While timeGetTime < Savetime + 35
DoEvents
Wend
Loop
3、由于ppt不太方便存储数据,也容易操作。因此想到通过另做一个excel文件来保存题目的题目数及选中状态,这样可以实现每次随机选的题目都是剩余没有答过的。而且每次开始前,可以重新更新题目状态(如YES是选中过的,NO是未选)。如
4、在题目页实现倒计时功能,可以手动开始和结束。经查可以通过 "winmm.dll"的timeGetTime函数来实现倒计时。效果如下:
三、代码实现
1、开始随机选题的代码
Private Sub button1_Click()Dim m As Integer '用来生成随机题数
Dim n As Integer '用来生成随机题数,模拟数字滚动效果
Dim r As Integer '行数
Dim s As Integer '判断是否已答的行数
Dim p As Integer 'PPT中题目开始的页码
Dim x As Integer '设置总题目数
Dim y As Integer '未答的总数,用来生产随机数
Dim v As String '存储题目回答状态
Dim Savetime As Double
Dim MyexcelApp As New Excel.Application
Dim MyexcelBook As New Excel.Workbook
Dim MyexcelSheet As New Excel.Worksheetsheetname = Label2.Caption 'sheet标签页名称
Pathstr = Application.ActivePresentation.Path + "\timu.xlsx" '获取文件路径,与当前文件同目录
Set MyexcelBook = MyexcelApp.Workbooks.Open(Pathstr)
Set MyexcelSheet = MyexcelBook.Worksheets(sheetname)
MyexcelSheet.Activatex = MyexcelSheet.Range("B1").Value '读取EXCEL文件总题数
y = MyexcelSheet.Range("B2").Value '读取EXCEL文件未答的总题数
p = MyexcelSheet.Range("B3").Value '读取EXCEL文件PPT题目开始页码i = 1
Do While i < 50 '用来生成模拟数字滚动的动画' If j = 48 Then
' TextBox1.Value = "结束"
' Exit Do
' Elsen = Int((x * Rnd) + 1) '用来生成总题目数随机数Randomizen = Int((x * Rnd) + 1) '用来再次生成总题目数随机数TextBox5.Value = n
' End Ifi = i + 1Savetime = timeGetTimeWhile timeGetTime < Savetime + 35DoEventsWend
LoopIf y > 0 Thenm = Int((y * Rnd) + 1) '用来生成未答题数的随机数据Randomizem = Int((y * Rnd) + 1) '用来再次生成未答题数的随机数据j = 5 'excel中题号开始的行号r = 0s = 0Do While j <= x + 4v = MyexcelSheet.Range("B" & j).ValueIf v = "NO" Thens = s + 1End IfIf s = m Thenr = MyexcelSheet.Range("A" & j).ValueMyexcelSheet.Range("B" & j).Value = "YES"TextBox5.Value = rExit DoEnd Ifj = j + 1Loopg = r + p - 1MyexcelBook.SaveMyexcelBook.CloseSet MyexcelApp = NothingSet MyexcelBook = NothingSet MyexceSheet = NothingWhile timeGetTime < Savetime + 2500DoEventsWendWith SlideShowWindows(1).View.GotoSlide gEnd With
ElseTextBox5.Value = "无"
End IfEnd Sub
2、实现倒计时
Private Declare PtrSafe Function timeGetTime Lib "winmm.dll" () As Long '64位系统,需要增加PtrSafe标识Public Ctr As Boolean
Const n As Integer = 180 '定义倒计时总秒数Private Sub CommandButton1_Click()If Ctr = True ThenCtr = FalseCommandButton1.Caption = "停止"CommandButton1.ForeColor = RGB(255, 0, 0)For i = 0 To n '用来生成倒计时If Ctr = True ThenLabel1.Caption = "结束"Label1.ForeColor = RGB(255, 0, 0)Exit ForElseIf i = n ThenLabel1.Caption = "结束"Label1.ForeColor = RGB(255, 0, 0)Exit ForElseLabel1.Caption = n - i & "S"Label1.ForeColor = RGB(255, 255, 255)Savetime = timeGetTimeWhile timeGetTime < Savetime + 1000DoEventsWendEnd IfEnd IfNextElseLabel1.Caption = "结束"Label1.ForeColor = RGB(255, 0, 0)CommandButton1.Caption = "开始"CommandButton1.ForeColor = RGB(255, 255, 255)Ctr = True
End IfEnd Sub
3、读取excel文件的题目数和题目状态
Private Sub readdata()Dim MyexcelApp As New Excel.ApplicationDim MyexcelBook As New Excel.WorkbookDim MyexcelSheet As New Excel.Worksheet' Pathstr = "C:\Users\lenovo\Desktop\text1.xlsx"sheetname = Label2.Caption 'sheet标签页名称Pathstr = Application.ActivePresentation.Path + "\timu.xlsx" '获取文件路径,与当前文件同目录Set MyexcelBook = MyexcelApp.Workbooks.Open(Pathstr)Set MyexcelSheet = MyexcelBook.Worksheets(sheetname)MyexcelSheet.Activatex = MyexcelSheet.Range("B1").Value '读取EXCEL文件总题数y = MyexcelSheet.Range("B2").Value '读取EXCEL文件未答的总题数Label3.Caption = xLabel1.Caption = yMyexcelBook.CloseSet MyexcelApp = NothingSet MyexcelBook = NothingSet MyexceSheet = NothingEnd Sub
四、总结
其实ppt的vba开发跟excel/word没啥区别,本人也是第一次尝试,日常工作中还是用的比较少。以下是我实际用的ppt文件,保存题目状态的excel文件是默认与ppt同目录一起(自己可以手动修改文件位置),列改成NO则表示没有选中的。
https://download.csdn.net/download/shaochuan_2008/85463291https://download.csdn.net/download/shaochuan_2008/85463291
ppt滚动动画随机选题相关推荐
- android仿ppt,android 仿ppt进入动画效果合集
EnterAnimation android 仿ppt进入动画效果合集, 百叶窗效果,擦除效果,盒状效果,阶梯效果,菱形效果,轮子效果,劈裂效果,棋盘效果, 切入效果,扇形展开效果,十字扩展效果,随机 ...
- 怎样实现随机抽题php,ppt VBA 实现随机抽题
目标/最终效果 目标具体描述:制作一个ppt,实现随机抽题. 第一页幻灯片中:点击开始按钮后,右边的文本框快速滚动显示随机数字,点击停止按钮后,滚动停止,抽取到的题号会显示到第二个文本框中,并appe ...
- js WOW.js滚动动画,跟随滚动条位置执行动画
原生js实现教程: 元素出现在页面时,添加动画,配合animate.css使用_hjhfreshman的博客-CSDN博客_给元素添加动画 效果图: 如上所示,每滚动到一个区域,执行动画如:淡入,浮入 ...
- android 仿ppt进入动画效果合集
EnterAnimation android 仿ppt进入动画效果合集, 百叶窗效果,擦除效果,盒状效果,阶梯效果,菱形效果,轮子效果,劈裂效果,棋盘效果, 切入效果,扇形展开效果,十字扩展效果,随机 ...
- ppt 简单动画制作
ppt 简单动画制作
- qt同时两个动画执行_Qt实现数字滚动动画效果
自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取: https://www.cnblogs.com/bclshuai/p/11380657.html Qt实现数字滚动动画效果 3. ...
- ppt倒计时_曾因PPT倒计时动画困扰?这样做就利索了。
在大会开场.抽奖.揭示等环节, 我们可能需要用到PPT倒计时动画. 倒计时的样式可以有无穷多种. 但它们的制作原理都是类似的, 并且这类动画是一次制作永久有效. 本期就来讲解一种干净利落的设计流程 ...
- 神奇的滚动动画,30个视差滚动网站设计
使用 HTML5 和 CSS3,我们能够在浏览器中创建更有趣和更吸引眼球的效果.其中,视差滚动(Parallax Scrolling)就是这样的效果之一.这种技术通过在网页向下滚动的时候,控制背景的移 ...
- 原生JS基于window.scrollTo()封装垂直滚动动画工具函数
概要: 原生JS基于window.scrollTo()封装垂直滚动动画工具函数,可应用与锚点定位.回到顶部等操作. ####封装原因: 在vue项目中,遇到需要实现垂直滚动效果的需求,初步想到的方法有 ...
- html如何设置滚动动画,JavaScript 实现页面滚动动画
在做前端 UI 效果时,让元素根据滚动位置实现动画效果是一个非常流行的设计,通常我们会使用第三方插件或库来实现.在本教程中,我将教大家使用纯 JavaScript 和 CSS 来实现. 先预览一下实现 ...
最新文章
- 项目管理生命周期各个阶段的文档
- [转]C#开发ActiveX控件,.NET开发OCX控件案例
- centos 6.5安装mysql5.7,centos6.5安装mysql5.7
- html代码范例_最佳HTML范例和HTML5范例
- 今天又遇到了一个问题
- python电脑配置-Python--获取电脑配置信息--设计代码
- 四级网络工程师和四级信息安全工程师考试须知与学习方法
- 2022年北京航空航天大学计算机考研复试分数线
- [Python]更改图片底色
- Android程序反破解技术
- Linux入门怎么学?262页linux学习笔记,零基础也能轻松入门
- MySQL 内连接、外连接、全连接
- 图片搜索引擎 - WebCrawler
- 2022年半导体硅片行业研究报告
- 免费的天气查询 API 接口分享
- 《三国演义》醉酒误事Top10
- 伪原创视频模糊 视频md5值查询
- 豆瓣电影Top250——电影详细
- 如何自定义sonar插件并学会使用
- 智慧住建信息平台项目工程建设方案