PowerPoint 內建 VBA (Visual Basic for Applications) 能將簡報變身互動應用程式。本文實戰分享一套「英語會話比賽即時評分系統」:8 位評委即時打分、自動計算平均分、寫入檔案、排名顯示頒獎,完整代碼與邏輯解析,可直接套用修改。
' 全域變數
Const Path$ = "C:\Windows\Desktop\評分系統\"
Dim sum As Single, AverageScore As Single, GroupNum As Integer
' 清空按鈕
Private Sub CommandButton1_Click()
TxtS1.Text = "": TxtS2.Text = "": TxtS3.Text = "": TxtS4.Text = ""
TxtS5.Text = "": TxtS6.Text = "": TxtS7.Text = "": TxtS8.Text = ""
Slide2.LblTotal.Caption = ""
End Sub
' 最後得分按鈕
Private Sub CommandTotal_Click()
On Error GoTo er
sum = 0
sum = sum + CSng(TxtS1.Text): sum = sum + CSng(TxtS2.Text)
sum = sum + CSng(TxtS3.Text): sum = sum + CSng(TxtS4.Text)
sum = sum + CSng(TxtS5.Text): sum = sum + CSng(TxtS6.Text)
sum = sum + CSng(TxtS7.Text): sum = sum + CSng(TxtS8.Text)
AverageScore = Format(sum / 8, "#.###")
Slide2.LblTotal.Caption = AverageScore
' 寫入檔案
If GroupNum >= 1 And GroupNum <= 5 Then
Open Path$ & "InpScore.txt" For Append As #1
Print #1, AverageScore
Close #1
End If
GroupNum = GroupNum + 1
er: End Sub
Const Counter = 6
Public StrName(Counter) As String
Public SngScore(Counter) As Single
Public Sub ReadDataInp()
On Error GoTo er
Open Path$ & "InpName.txt" For Input As #1
For i = 1 To Counter: Input #1, StrName(i): Next: Close #1
Open Path$ & "InpScore.txt" For Input As #2
For i = 1 To Counter: Input #2, SngScore(i): Next: Close #2
' 氣泡排序:分數由高到低,同步交換隊名
For i = 1 To Counter
For j = 1 To Counter
If SngScore(i) > SngScore(j) Then
a = SngScore(i): SngScore(i) = SngScore(j): SngScore(j) = a
b = StrName(i): StrName(i) = StrName(j): StrName(j) = b
End If
Next
Next
er: End Sub
Private Sub CmdDisply_Click()
ReadDataInp
' 分數已由高排至低,第 4-6 名為三等獎
TxtThirdPrize1.Text = StrName(4)
TxtThirdPrize2.Text = StrName(5)
TxtThirdPrize3.Text = StrName(6)
End Sub
| 控制項 | 名稱 | 說明 |
|---|---|---|
| 評委分數文字框 (8個) | TxtS1 ~ TxtS8 | 對應 8 位評委 |
| 清空按鈕 | CommandButton1 | 清除所有分數與結果 |
| 最後得分按鈕 | CommandTotal | 計算平均、寫檔、換組 |
| 最終分數標籤 (投影片2) | LblTotal | 顯示平均分 |
| 三等獎顯示框 (投影片3) | TxtThirdPrize1~3 | 顯示第 4-6 名隊名 |
| 顯示按鈕 (投影片3) | CmdDisply | 觸發排名讀取顯示 |
PowerPoint + VBA 的組合,讓非程式設計師也能快速開發專用小工具。這套評分系統經實戰驗證穩定可靠,歡迎依需求修改擴展。