当前位置: 首页 > news >正文

备忘录-10年前PPT自动答题小程序:完整代码一键复制,初级

一个PPT 内自动出题、随机抽题、答题、判分的完整小程序。可直接复制使用的最终完整版代码。分为两部分:(10年前的小工具,经过AI重新整理

  1. 标准模块(放通用过程:LoadTiKu)
  2. 用户窗体模块(放按钮、控件事件)

一、标准模块(插入 → 模块)

模块名默认Module1即可

vba

' 全局数组:存放所有题目 Public AllTiMu() As Variant Sub LoadTiKu() Dim sFile As String Dim MyString As String Dim i As Integer Dim TiMu() As String i = 0 ReDim AllTiMu(0) ' 同目录下题库文件 sFile = ActivePresentation.Path & "\题库文件.txt" If Dir(sFile) = "" Then MsgBox "未找到题库文件:" & sFile, vbCritical Exit Sub End If Open sFile For Input Access Read As #1 Do While Not EOF(1) Line Input #1, MyString TiMu = Split(MyString, "|") AllTiMu(i) = TiMu i = i + 1 ReDim Preserve AllTiMu(i) Loop Close #1 Erase TiMu MsgBox "题库加载完成!共 " & i & " 道题目", vbInformation End Sub

二、用户窗体代码(直接粘贴到窗体代码窗口)

vba

' 窗体级公共变量 Public SelDaAn As String Public selIndex As Integer ' 加载试题 Private Sub cmdLoad_Click() ClearSel LoadTiKu MakeTiMu cmdLoad.Enabled = False End Sub ' 下一题 Private Sub cmdNext_Click() ClearSel MakeTiMu End Sub ' 核对答案 Private Sub cmdCheck_Click() If SelDaAn = "" Then MsgBox "请先选择一个选项!", vbExclamation Exit Sub End If If SelDaAn = AllTiMu(selIndex)(4) Then MsgBox "正确,继续努力!", vbInformation Else MsgBox "再考虑考虑!", vbCritical End If End Sub ' 随机出题 Private Sub MakeTiMu() Dim arrTemp() As String Dim totalTiMu As Integer Randomize totalTiMu = UBound(AllTiMu) If totalTiMu = 0 Then MsgBox "请先加载题库!", vbExclamation Exit Sub End If selIndex = Int(Rnd * totalTiMu) ' 显示题干 TextBox1.Text = "题目:" & AllTiMu(selIndex)(0) ' 选项 OptSelA.Caption = AllTiMu(selIndex)(1) OptSelB.Caption = AllTiMu(selIndex)(2) OptSelC.Caption = AllTiMu(selIndex)(3) OptSelD.Caption = AllTiMu(selIndex)(4) ' 重置选择 SelDaAn = "" End Sub ' 清空界面 Private Sub ClearSel() optSelA.Value = False optSelA.Caption = "" optSelB.Value = False optSelB.Caption = "" optSelC.Value = False optSelC.Caption = "" optSelD.Value = False optSelD.Caption = "" TextBox1.Text = "" SelDaAn = "" End Sub ' 选项A Private Sub optSelA_Click() SelDaAn = Left$(optSelA.Caption, 1) End Sub ' 选项B Private Sub optSelB_Click() SelDaAn = Left$(optSelB.Caption, 1) End Sub ' 选项C Private Sub optSelC_Click() SelDaAn = Left$(optSelC.Caption, 1) End Sub ' 选项D Private Sub optSelD_Click() SelDaAn = Left$(optSelD.Caption, 1) End Sub

三、题库文件格式(必须严格)

题库文件.txt一行一题,格式:

plaintext

题干|A选项|B选项|C选项|D选项|正确答案

示例:

plaintext

计算机中数据的最小单位是?|位(bit)|字节(Byte)|KB|MB|A PowerPoint中新建演示文稿快捷键是?|Ctrl+N|Ctrl+S|Ctrl+O|Ctrl+P|A

四、控件名称必须对应(否则报错)

  • 加载按钮:cmdLoad
  • 下一题按钮:cmdNext
  • 核对答案按钮:cmdCheck
  • 文本框:TextBox1
  • 单选按钮:optSelA/optSelB/optSelC/optSelD

如果你需要,我可以再给你加:

  • 答题计分(答对 + 1,答错 0)
  • 禁止重复抽题
  • 显示正确答案
  • 答题完成后显示总分
http://www.jsqmd.com/news/648871/

相关文章:

  • Git版本控制:RMBG-2.0项目协作开发实践
  • IQuest-Coder-V1-40B-Instruct作品集:它生成的代码有多专业?
  • 快速搭建语音识别环境:Speech Seaco Paraformer一键部署教程
  • Qwen3-TTS-1.7B-CustomVoice快速上手:WebUI界面操作+参数调优详解
  • 3步打造你的专属宝可梦世界:pkNX完全指南
  • 别再用泰坦尼克号学逻辑回归了!试试这个Kaggle新数据集,用Python从EDA到部署完整走一遍
  • yolov8检测模型pt转rknn
  • BilibiliDown:解锁B站音视频资源的高效智能解析工具
  • Qwen3-0.6B-FP8性能调优教程:vLLM引擎参数(max_model_len, gpu_memory_utilization)详解
  • Pikachu靶场实战:DOM型XSS漏洞攻防解析
  • LIONSIMBA工具箱实战:从P2D模型构建到热耦合仿真的MATLAB全流程解析
  • 如何通过智能温控彻底解决电脑风扇噪音问题?Fan Control实战深度解析
  • 保姆级教程:用ESPHome把ESP32-CAM摄像头变成智能家居监控(含Web端烧录避坑指南)
  • Swift-All效果实测:一键量化模型,显存占用降低75%
  • 2026年比较好的修复/呼市划痕修复优质商家推荐 - 品牌宣传支持者
  • 梯形图转 HEX 51plc 方案 5.6.4.2 版本使用问题探讨
  • Jenkins 2.516.2 + JDK8 实战:老项目CI/CD改造避坑指南(含多版本JDK切换技巧)
  • 从SFT到RL:Flow Matching VLA的强化学习后训练范式演进与实践
  • 【腹腔镜数据集实战】Cholec80+CholecSeg8k+Endoscapes多任务联合建模指南
  • git使用记录
  • HunyuanVideo-Foley私有化部署:基于Docker与GitHub Actions的CI/CD流水线
  • 树莓派Pico实战:有源与无源蜂鸣器的原理、驱动与游戏化应用
  • 从Transformer到SASRec:图解自注意力如何重塑序列推荐系统
  • 别再让仿真跑通宵!手把手教你用Xcelium的-mce和-mcebuild选项榨干服务器CPU
  • 如何添加超链接_a标签href属性详解【详解】
  • Z-Image-Turbo_UI界面效果展示:对比原图与修复图,细节提升肉眼可见
  • 2026年湖州汽车贴膜公司口碑推荐榜:龙膜,湖州汽车贴膜哪家强?专业老牌机构口碑推荐榜与未来趋势解析 - 品牌策略师
  • 忍者像素绘卷惊艳效果:浮雕式UI+硬边阴影+像素橙主色调实拍展示
  • 异常处理机制二:throws
  • 从“硬开关”到“软启动”:深入拆解一个经典12V缓启动电路的每个细节(含仿真文件)