目标/最终效果

目标具体描述:制作一个ppt,实现随机抽题。

第一页幻灯片中:点击开始按钮后,右边的文本框快速滚动显示随机数字,点击停止按钮后,滚动停止,抽取到的题号会显示到第二个文本框中,并append到第三个文本框的内容中,然后点击跳转按钮,会跳转至相应幻灯片。

跳转题目页面后,点击返回键,可返回到第一页幻灯片继续抽题。

第一页幻灯片中,重置按钮将清除所有文本框的内容。

PS:本文适合具有一定编程基础的读者。

关于VBAVBA,即Visual Basic for Application,是一种程序设计语言,集成在某个具体应用软件中(比如最常用的Excel VBA,那么我们将Excel称为宿主应用程序)。

VBA与VB(Visual Basic):在开发环境、基本语法、支持的对象和属性和方法等都十分相似。不同之处在于,VBA代码需要宿主应用程序的支持,因此只能与宿主应用程序一起使用,不能使用VBA创建独立运行的应用程序。

VBA与宏:一组VBA指令的集合形成了宏,宏能够自动执行宿主应用程序的功能,实现一次性完成多项操作,或,扩展现有功能。

ppt VBA:= VBA的基础语法 + ppt对象模型。对于目标任务的实现来说,可以不掌握ppt对象模型。不过这里仍然给出完整的学习框架,供有兴趣的读者拓展:

VBA简单示例

首先介绍按钮控件的简单示例,通过本部分,读者应掌握:如何创建控件、设置属性。

熟悉VBA编辑器。

一个控件对某个动作的响应函数的编写。

运行

检查环境版本:office 最新版 PowerPoint (其它版本或者WPS或许也行)

开发工具:看看顶部有没有“开发工具”菜单。没有的话,在“文件”——“选项”——“自定义功能区”——勾选“开发工具”VBA编辑器:“开发工具”——“宏”——输入一个宏名,点击创建,看是否能正常调出VBA编辑器:

​ 若不能调出VBA编辑器,弹窗提示错误(内存溢出啥的),可能是你之前安装过WPS,请参考这篇博客修改注册表。

步骤创建控件:“开发工具”——选择”命令按钮控件“——在幻灯片上画出控件。 还有很多其它类型的控件,请自行探索。编辑控件属性:右击画出来的丑陋控件——“属性表”“(名称)”属性:这个控件的名字,编程时用到,建议用英文认真命名,比如hello_btn, reset_btn, rolling_nums_text。

“Caption”属性:命令按钮控件显示的文字。

另,调整样式时,建议选择“按分类序”,请自行探索如何改变控件的字体大小、前景背景颜色、对齐方式等。

编写控件响应函数:双击控件,或,右键点击“查看代码”,从而调出VBA编辑器。双击选择所在幻灯片,这里是slide8

选择控件名称,这里是hello_btn

选择控件响应的事件,这里是单击事件click

然后会自动生成函数头尾,我们需要在中间补充函数的内容Private Sub hello_btn_Click()

'单引号表示注释,与C语言的//含义相同

'下面这句,Dim 变量名 As 数据类型,能声明一个变量,常用数据类型为Integer和String,参见:https://www.yiibai.com/vba/vba_variables.html

Dim str As String

str = "hello world"

MsgBox str 'MsgBox是消息框函数,参见:https://www.yiibai.com/vba/vba_message_box.html

End Sub

运行方法:放映幻灯片,点击按钮,就会弹窗显示"hello world"。或者,在VBA编辑器中,按F5运行。

PS:光标定位某个函数后,按下F1,会在浏览器打开相应的官方文档

VBA实现随机抽题创建4个命令按钮控件,命名为start_btn, stop_btn, jump_btn, reset_btn。创建3个文本框控件,命名为rolling_num_text, result_num_text, done_nums_text。编辑控件属性,加入一些提示性文本框。

创建具体题目的幻灯片,注意添加返回到首页的按钮(插入某个形状,然后右键设置超链接)。复制得到7个这样的幻灯片,表示有7道题。

VBA中编写4个函数:start_btn_Click、stop_btn_Click、jump_btn_Click、reset_btn_Click:'全局变量

Dim n As Integer, stop_flag As Boolean, typ As Integer

Private Sub start_btn_Click()

stop_flag = False

n = 7 '初始化,觉得还是放在一个init初始化函数里比较好...

stop_btn.Enabled = True '使stop按钮有效

Dim a As Integer

Randomize '初始化Rnd函数的随机数字生成器, 为其提供一个新的种子值。可按F1键查看函数解析。

Do

a = Fix(Rnd * n + 1) 'a是[1,n]之间的随机整数。Fix函数返回数字的整数部分;Rnd函数没有参数,返回[0,1)的数。

rolling_num_text.Text = a

result_num_text.Text = ""

DoEvents '交出控制权,以便操作系统能够处理其它事情

If stop_flag = True Then

Exit Do '退出循环,相当于break

End If

Loop

End Sub

Private Sub stop_btn_Click()

result_num_text.Text = rolling_num_text.Text

done_nums_text = done_nums_text + result_num_text + " "

stop_btn.Enabled = False '使stop按钮无效

stop_flag = True

End Sub

Private Sub jump_btn_Click()

Dim temp As Integer

temp = result_num_text.Text + 1

'GotoSlide切换到指定的幻灯片

ActivePresentation.SlideShowWindow.View.GotoSlide Val(temp)

End Sub

Private Sub reset_btn_Click()

rolling_num_text.Text = ""

result_num_text.Text = ""

done_nums_text.Text = ""

End Sub

todo challenge抽题时,自动过滤已经抽过的题目。需要使用数组(清空、插入、索引等操作)

抽题时,还能选择题目的类型,比如从3类中选择1类。法一:使用选择按钮控件。

法二:添加文本框,可输入题目类别号。

链接excel与ppt,实现“只需编辑excel相关数据,即快速创建ppt相应的题目幻灯片”。题库excel中,题目类型、每类型的题目数量、题目内容字符串,都只需在excel中改动。需要熟知excel和ppt的对象模型,并学习如何链接excel与ppt

怎样实现随机抽题php,ppt VBA 实现随机抽题相关推荐

  1. C语言调试语法差错步骤称为,计算机等级考试二级C语言真题辅导.ppt

    计算机等级考试二级C语言真题辅导.ppt 全国计算机等级考试辅导(二级)信息技术学院 张开利全国计算机等级考试大纲内容 笔试考试( 90分钟) 满分 100分 (统一试卷) C语言. Visual B ...

  2. 2019计算机原理及应用期末自测题,微机原理期末自测题答案.ppt

    微机原理期末自测题答案.ppt 一.基本概念与术语 1.8086是( )位计算机.8086地址线有( )条,可直接寻址的空间最大为( ). 2.总线周期是指( ).基本总线周期有( )T状态.Tw状态 ...

  3. c语言二级考试程序设计题难吗,计算机二级考试:题库抽的不是题是“命”!附赠考试通关全攻略!...

    原标题:计算机二级考试:题库抽的不是题是"命"!附赠考试通关全攻略! 四六级的报名刚截止不久, 考研复试如火如荼地进行, 计算机二级考试如约而至. 今天是考试第一天 老新猜你一定有 ...

  4. c语言编程转化为vba编程,PPT VBA编程.doc

    PPT VBA编程 PPT VBA编程 ?一.什么是VBA?直到上世纪90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用E ...

  5. 计算机原理课堂,计算机原理课堂测验题集.ppt

    计算机原理课堂测验题集.ppt (31页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.9 积分 <计算机组成原理>课堂测验题(1)F1○ ...

  6. 计算机二级关于ppt的题目,全国计算机二级题库Ppt题目考点.doc

    文档介绍: 全国计算机二级题库Ppt题目考点.doc套号 内容 知识点 难易程度 1套 小企业会计准则培训 创建演示文稿,版式,主题,剪贴画,动画.切换效果,项目符号,对齐方式,SmartArt图形, ...

  7. 基于Python pyqt5的随机抽号机源代码 ,可设置抽号器的人数及刷新间隔

    基于Python pyqt5的随机抽号机源代码 ,可设置抽号器的人数及刷新间隔,直接运行main.py即可 完整代码下载地址: pyqt5的随机抽号机源代码 main.py import sys fr ...

  8. matlab随机信号分析,基于MATLAB的随机信号分析方法.ppt

    <基于MATLAB的随机信号分析方法.ppt>由会员分享,可在线阅读,更多相关<基于MATLAB的随机信号分析方法.ppt(31页珍藏版)>请在人人文库网上搜索. 1.基于MA ...

  9. 计算机一级考试ppt演示文稿及上网题考点

    计算机一级考试ppt演示文稿及上网题是必考的内容!下面小编为大家介绍计算机一级考试ppt演示文稿及上网题考点,希望能帮到大家! ppt演示文稿(15分) 1.新建幻灯片(开始菜单,选择版式) 2.删除 ...

最新文章

  1. 百度智能云一口气发布 14 个新产品,三大视频解决方案,产品最高降价 50%
  2. OpenAI首次推出数学定理推理模型GPT-f,23个推导结果被专业数据库收录
  3. JDK8 stream toMap() java.lang.IllegalStateException: Duplicate key异常解决(key重复)
  4. HDU 1166 敌兵布阵
  5. 再上24天班,小长假就来了!
  6. 定了!10 月 8 日!Jupyter Notebook 原生支持将正式来到 VS Code!
  7. mysql savepoint作用_savepoint原理
  8. sql server (mssqlserver)无法启动,事件查看器提示SQL Server 无法生成 FRunCM 线程
  9. Python 读写文本(open)
  10. 具体解决VS“滴答数必须介于 DateTime.MinValue.Ticks 和 DateTime.MaxValue.Ticks 之间”奇怪问题...
  11. 步入restful之前先了解一下localStorage
  12. c 打印二叉树_基础扩展 | 22. 遍历二叉树—前序遍历算法的VBA代码解析
  13. 走进WPF之开发类似Visio软件
  14. 【关机程序】如何用代码实现关机
  15. 【开工】知道创宇网络安全线上服务指南
  16. 在操作系统、芯片领域跌倒的中国程序员,如何崛起?
  17. R语言使用lm函数构建多元回归模型(Multiple Linear Regression)、并根据模型系数写出回归方程、使用resid函数或者residuals计算出模型的残差值
  18. npm全局安装和本地安装及卸载
  19. 如何用python画小黄人_怎么用python画小黄人
  20. 广外计算机学院在哪个校区,广东外语外贸大学有几个校区及校区地址 哪个校区最好...

热门文章

  1. PHP跨境电商商城系统源码支持多语言功能
  2. MathML: 描述数学表达式
  3. 充分条件,必要条件,充分必要条件
  4. 继电保护与自动装置例题6.10-20151101
  5. arduino 多个超声波模块HC-SR04 Newping.h库的使用——摆脱万恶的阻塞等待
  6. 万年历c语言攀枝花,C语言实现万年历
  7. 移动通信技术发展历程及未来趋势
  8. win10桌面图标消失解决+软件快捷方式重建+显示所有电脑应用
  9. CSS 奇思妙想边框动画
  10. 测试实战-京东网站 + 禅道(七)