目标具体描述:
PS:本文适合具有一定编程基础的读者。
最终效果链接:https://pan.baidu.com/s/1C9gmVtLDvTbOOYabEqVlng 提取码:hxt7
VBA,即Visual Basic for Application,是一种程序设计语言,集成在某个具体应用软件中(比如最常用的Excel VBA,那么我们将Excel称为宿主应用程序)。
VBA与VB(Visual Basic):在开发环境、基本语法、支持的对象和属性和方法等都十分相似。不同之处在于,VBA代码需要宿主应用程序的支持,因此只能与宿主应用程序一起使用,不能使用VBA创建独立运行的应用程序。
VBA与宏:一组VBA指令的集合形成了宏,宏能够自动执行宿主应用程序的功能,实现一次性完成多项操作,或,扩展现有功能。
ppt VBA:= VBA的基础语法 + ppt对象模型。对于本文目标任务的实现来说,可以不掌握ppt对象模型。不过这里仍然给出完整的学习框架,供有兴趣的读者拓展:
【拓展】以Excel VBA为例说明VBA的学习框架:
首先介绍按钮控件的简单示例,通过本部分,读者应掌握:
? 若不能调出VBA编辑器,弹窗提示错误(内存溢出啥的),可能是你之前安装过WPS,请参考这篇博客修改注册表。
编辑控件属性:右击画出来的丑陋控件——“属性表”
编写控件响应函数:双击控件,或,右键点击“查看代码”,从而调出VBA编辑器。
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,会在浏览器打开相应的官方文档
'全局变量
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
参考链接:
随机抽题、链接excel与ppt、VBA基础语法、官方文档是个宝
原文:https://www.cnblogs.com/jeffan/p/11583278.html