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