新浪博客

使用PPT和Excel简易制作评分系统——VBA应用

2013-05-15 14:44阅读:
使用PPT和Excel简易制作评分系统——VBA应用
最近由于工作很少写博文了,昨天因为有要求做一个PPT的评分系统,问有没有比较便捷的方法,于是乎,度娘又一次完成了艰巨的任务,让我搜索到了一些可以用的成品。然后,自己探究的毛病突然发作,又自己折腾了下,现将折腾过程记录一下。
过程
1. 打开PPT2010【或者更高版本2013】,新建一张ppt空白页
2. 进入PowerPoint选项【文件———选项】【或者右键Ribbon栏———自定义功能区
3. 在 主选项卡里,勾选 开发工具
4. 选择 开发工具 选项卡 选择 文本框 控件
5. 添加8个文本框,并依次右键 属性表 ,修改文本框名称为T1至T8
6. 进入 VBA 界面,插入以下代码
Public xlApp As Excel.Application
Public wbXL As Excel.Workbook
Sub pingfen()
Dim Total, Max, Min, n(10), MAXn, MINn, No
No = 1 '选手编号
Dim T(1 To 8) As TextBox
Set T(1) = T1: Set T(2) = T2: Set T(3) = T3: Set T(4) = T4
Set T(5) = T5: Set T(6) = T6: Set T(7) = T7: Set T(8) = T8
For i = 1 To 8
n(i) = Val(T(i).Text)
Next i
Total = n(1)
Max = n(1)
Min = n(1)
For i = 2 To 8
Total = Total + n(i)
Next i
For k = 1 To 8
If n(k) > Max Then Max = n(k)
If n(k) < Min Then Min = n(k)
Next k
Set xlApp = New Excel.Application
xlFilePath$ = ActivePresentation.Path & '\' & 'mark.xlsx' '设置工作目录,其中mark.xlsx是文件名
Set wbXL = xlApp.Workbooks.Open(xlFilePath)
For i = 3 To 10
wbXL.ActiveSheet.Cells(No + 1, i) = n(i - 2)
Next i
wbXL.ActiveSheet.Cells(No + 1, 1) = No
wbXL.ActiveSheet.Cells(No + 1, 11) = Max
wbXL.ActiveSheet.Cells(No + 1, 12) = Min
wbXL.ActiveSheet.Cells(No + 1, 13) = (Total - Min - Max) / 8
wbXL.ActiveSheet.Cells(No + 1, 14) = '=RANK(M' & No + 1 & ',$M$2:$M$65536,0)'
wbXL.Save
wbXL.Close
xlApp.Quit
Set wbXL = Nothing
Set xlApp = Nothing
If Not (xlApp Is Nothing) Then
xlApp.Quit
End If
'对下一张幻灯片的控件进行操作,slide2需要改为对应的对象名
Slide2.Label1.Caption = Format((Total - Min - Max) / 8, '0.000')
SlideShowWindows(1).View.Next
End Sub

7.在VBA 界面,选择 工具——引用,添加 excel 运行库【非常重要】
8. 新建 矩形框【其实当初可以使用 vba控件的 按钮,只是太丑了,用这种方式】,设置渐变等效果,然后选择 插入——动作——运行宏,pingfen那个宏。
9. 新建一张ppt,插入一个 Label 控件。保存ppt。
10. 在ppt当前目录下,新建mark.xlsx Excel文件,设立 如下表头后保存
序号 | 姓名 | 1 | 2 | 3 | 4 | 5 | 7 | 8 | 最高分 | 最低分 | 总分 | 名次

11. 这样最基本的评分系统就完成了,你可以根据自己的需要修改。
以下是简易的图文
使用PPT和Excel简易制作评分系统——VBA应用


ps:这个系统也是参考了网上下载的一些ppt所修改而来,感谢原来的作者。
本来还想研究自动读取图片,读取参赛信息等更自动的功能,时间有限,暂时完成这个评分,哪天无聊了研究以下功能:
* 读取目录、添加图片
* 读取Excel,添加参赛人员信息
* 最多利用两页PPT就能将参赛评分过程完成
看来要深挖Office功能,VBA是必经之路!!

我的更多文章

下载客户端阅读体验更佳

APP专享