費陳靜
摘? 要:文章主要利用excel中VBA編程功能的自定義教師職稱系數函數、班級上課人數系數函數、上課門數系數函數、每輪次應減課時節數函數和FOR循環語句來統計教師超課時費,通過編程就能提高教學管理者統計教師超課時費的工作效率。
關鍵詞:EXCEL;VBA編程;函數;超課時費
中圖分類號:TP391? ? ? ? 文獻標志碼:A? ? ? ? ?文章編號:2095-2945(2020)21-0130-02
Abstract: This paper mainly uses the self-defined teacher's professional title coefficient function, the class number coefficient function, the class number coefficient function, the reduced class period function and the FOR cycle sentence of the VBA programming function in excel to count teachers' overtime fees. Through programming, we can improve the efficiency of teaching administrators in counting teachers' overtime fees.
Keywords: EXCEL; VBA programming; function; extra class fee
1 超課時費計算方法
本人一直從事教學管理工作多年,以前使用微軟excel辦公軟件自帶的公式計算教師超課時費,在累加教師的課時數計算起來不方便,后來我發現excel中有VBA編程功能可用于計算教師超課時費簡單方便實用。我校的甲教師一周內在1班上A課、在2班上A課、在3班上B課的超課時費是怎樣計算呢?首先,計算甲教師一周內1班A課的教學工作量等于甲教師1班A課實際課時乘以(1+職稱系數+上課門數系數+1班上課人數系數);其次,用同樣的方法計算甲教師一周內在2班上A課、在3班上B課的教學工作量;再次,將甲教師一周內在1班上A課、在2班上A課、在3班上B課的教學工作量累加再加上甲教師附加工作量,得到這個工作量稱為甲教師折算后工作量合計。最后,甲教師折算后工作量合計減去應減的工作量得到折算后超課時節數,甲教師課時費等于折算后超課時節數乘以每節課時費。
2 用VBA編寫程序統計教師超課時費步驟
第一步:準備教師課堂教學的基本信息表。
第二步:用FOR循環語句計算該系部全部教師某班某門課的教學工作量小計和附加工作量。在開發工具欄中,插入一個窗體控件按鈕在表格中,打開VB編輯器,在按鈕代碼內輸入如下代碼
mjksf = InputBox("每節課時費(元)") '輸入課時費
b = Sheet1.Range("A" & Rows.Count).End(xlUp).Row '統計A列有數據行數
For i = 5 To b Step 1 '某教師某班某門課的教學工作量小計和附加工作量
Sheet1.Cells(i, 12) = Sheet1.Cells(i, 8) * (1 + skrsxs(Sheet1.Cells(i, 10)) + skmsxs(Sheet1.Cells(i, 11)) + zcxs(Sheet1.Cells(i, 4)))
Sheet1.Cells(i, 15) = Sheet1.Cells(i, 12) + Sheet1.Cells(i, 14)
Next i
在上述代碼中調用了教師職稱系數函數(zcxs)、班級上課人數系數函數(skrsxs)和上課門數系數函數(skmsxs), 這些函數中都使用了判斷條件語句來判斷教師職稱、上課人數和上課門數每節課應該增加多少系數。
Function zcxs(zc) '職稱系數函數
Select Case zc
Case "教授"
zcxs = 0.2? ? '職稱是教授每節課增加0.2系數
Case "副教授"
zcxs = 0.15? ?'職稱是副教授每節課增加0.15系數
Case "講師"
zcxs = 0.1? ? '職稱是講師每節課增加0.1系數
Case Else
zcxs = 0? ? ? '職稱是助教每節課增加0系數
End Select
End Function
Function skrsxs(skrs) '班級上課人數系數函數
If skrs >= 100 Then
skrsxs = 0.3? ? ? ? ?'班級上課人數100人及以上每節課增加0.3系數
Else
If skrs >= 90 Then
skrsxs = 0.25? ? ? ?'班級上課人數在90-99人每節課增加0.25系數
Else
If skrs >= 80 Then
skrsxs = 0.2? ? ? ? '班級上課人數在80-89人每節課增加0.2系數
Else
If skrs >= 70 Then
skrsxs = 0.15? ? ? ?'班級上課人數在70-79人每節課增加0.15系數
Else
If skrs >= 60 Then
skrsxs = 0.1? ? ? ? '班級上課人數在60-69人每節課增加0.1系數
Else
If skrs >= 50 Then
skrsxs = 0.05? ? ? '班級上課人數在50-59人每節課增加0.05系數
Else
skrsxs = 0? ? ? ? ?'班級上課人數在50人以下每節課增加0系數
End If
End If
End If
End If
End If
End If
End Function
Function skmsxs(skms) '上課門數系數函數
If skms >= 3 Then
skmsxs = 0.2? ? ? ? ?'教師上課門數3門及以上每節課增加0.2系數
Else
If skms = 2 Then
skmsxs = 0.1? ? ? ? ?'教師上課門數2門每節課增加0.1系數
Else
skmsxs = 0? ? ? ? ? ?'教師上課門數1門每節課增加0系數
End If
End If
End Function
在運行上述代碼后,就計算系部全部教師某班某門課的教學工作量小計和附加工作量。
第三步:利用內層FOR循環語句計算系部某教師的折算后工作量合計節數。
第四步:利用嵌套FOR循環語句和調用每輪次應減課時節數函數(yjksjs)計算某系部全部教師折算后超課時補貼合計節數和超課時費代碼見如下
For i = 5 To b Step 1
k = 0
l = 0
For j = i To 20 + i Step 1? ?'某教師的折算后工作量合計節數
If Sheet1.Cells(i, 3) = Sheet1.Cells(j, 3) Then
k = k + Sheet1.Cells(j, 15)
l = l + Sheet1.Cells(j, 12)
Else
Exit For
End If
Next j
Sheet1.Cells(i, 16) = k
Sheet1.Cells(i, 18) = Sheet1.Cells(i, 16) - yjksjs(Sheet1.Cells(i, 5), l) + Sheet1.Cells(i, 17)? '某教師折算后超課時補貼合計節數
If Sheet1.Cells(i, 18) < 0 Then
Sheet1.Cells(i, 19) = 0
Else
Sheet1.Cells(i, 19) = Round(mjksf * Sheet1.Cells(i, 18), 1)? ?'某教師超課時費保留一位小數
End If
Range(Sheet1.Cells(i, 16), Sheet1.Cells(j - 1, 16)).Merge? '合并單元格
Range(Sheet1.Cells(i, 17), Sheet1.Cells(j - 1, 17)).Merge? '合并單元格
Range(Sheet1.Cells(i, 18), Sheet1.Cells(j - 1, 18)).Merge? '合并單元格
Range(Sheet1.Cells(i, 19), Sheet1.Cells(j - 1, 19)).Merge? '合并單元格
i = j - 1
Next i
Function yjksjs(a, l) '每輪應減課時節數函數
If a = "專任教師" Then
yjksjs = 10 * 4 '專任教師每周教學工作量10節,每輪四周應減40節課
Else
yjksjs = l / 2 '兼職教師教學工作量減半計算
End If
End Function
3 結束語
在使用VBA編程后教師超課時費匯總表模板已經在學校的各個教學系部廣泛使用,受到教學秘書青睞,大大提高工作效率和計算準確率。在教師超課時費匯總表模板中,雖然某系部甲教師和乙教師姓名相同并且數據錄入行連續,就會計算給一個教師,但是我們可以通過給名字相同教師加入一個數字進行區別。另外一般情況下每輪次是統計四個周超課時費,所以專任教師每輪次應減課時節數為40節,但是根據學校實際情況是每學期最后四周安排兩周教學和兩周考試,這樣專任教師這輪次應減課時節數為20節,只需將每輪應減課時節數函數中4改為2就可以統計教師超課時費。
參考文獻:
[1]楊洋.基于VBA的教學工作量及課時費核算系統設計——以天津職業大學為例[J].無線互聯科技,2020,17(03):80-81.
[2]賀婧.Excel VBA在道路工程測量中的應用[J].科技創新與應用,2020(08):185-186.
[3]喻靖,朱峰,夏瑞杰.基于Excel VBA實現油田報表自動化設計[J].價值工程,2020,39(09):193-194.
[4]鄒傳樹.運用Excel_VBA編程實現一鍵批量發送工資條[J].電腦知識與技術,2019,15(28):58-59.