崇美英+李穎+賈艷萍
摘要:文章通過對(duì)我校開設(shè)的“VB程序設(shè)計(jì)”課程的現(xiàn)狀和問題的分析,提出了用“VBA程序設(shè)計(jì)”替代目前開設(shè)的“VB程序設(shè)計(jì)”,并分析了將“VBA程序設(shè)計(jì)”作為非計(jì)算機(jī)專業(yè)計(jì)算機(jī)程序設(shè)計(jì)語言課程的優(yōu)勢(shì),同時(shí)提出了“VBA程序設(shè)計(jì)”課程教學(xué)方法和模式,給出“VBA程序設(shè)計(jì)”案例,供該課程改革使用。
關(guān)鍵詞:程序設(shè)計(jì);VB;VBA;計(jì)算思維
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)28-0073-03
1 概述
中國高等院校計(jì)算機(jī)基礎(chǔ)教育課程體系2014中指出:非計(jì)算機(jī)專業(yè)的本科計(jì)算機(jī)教育宗旨是以應(yīng)用為目標(biāo),培養(yǎng)學(xué)生掌握應(yīng)用計(jì)算機(jī)的能力,為將計(jì)算機(jī)與信息技術(shù)用于所學(xué)專業(yè)打下基礎(chǔ),使學(xué)生最終能夠運(yùn)用計(jì)算機(jī)和其相對(duì)應(yīng)學(xué)科的知識(shí),處理和解決其專業(yè)的實(shí)際應(yīng)用問題,使學(xué)生逐漸成為既熟悉其專業(yè)知識(shí),又掌握計(jì)算機(jī)應(yīng)用的復(fù)合型人才。鑒于此,我校面向經(jīng)管類專業(yè)學(xué)生開設(shè)了《VB程序設(shè)計(jì)》課程。
2 VB程序設(shè)計(jì)課程現(xiàn)狀及存在問題
VB程序設(shè)計(jì)是我校針對(duì)經(jīng)管類專業(yè)學(xué)生開設(shè)的唯一的一門程序設(shè)計(jì)課程。自2012年開始,從減輕學(xué)生負(fù)擔(dān)的角度考慮,程序設(shè)計(jì)語言完成了從C語言到VB語言的更替,但在教學(xué)中卻發(fā)現(xiàn),學(xué)生除了像學(xué)習(xí)C語言一樣需要記住眾多的概念、術(shù)語、語句格式、語法規(guī)則等等外,還要記住VB中的控件及眾多的控件屬性(且為英文描述),因此對(duì)于學(xué)生而言非但沒有減輕負(fù)擔(dān),反而還要記住更多的內(nèi)容,進(jìn)而加重了學(xué)生的學(xué)習(xí)負(fù)擔(dān)。同時(shí),經(jīng)管類專業(yè)學(xué)生與理工類專業(yè)學(xué)生具有著相同的程序設(shè)計(jì)要求,這對(duì)于大部分將來不會(huì)直接從事程序設(shè)計(jì)工作的經(jīng)管類學(xué)生而言,無疑使學(xué)生們認(rèn)為VB程序設(shè)計(jì)缺乏實(shí)用價(jià)值,并逐漸降低了對(duì)課程的學(xué)習(xí)興趣,有些學(xué)生通過抄襲完成課程內(nèi)容,有些學(xué)生甚至選擇放棄。
另外,隨著操作系統(tǒng)不斷更新,VB還要與不斷升級(jí)的操作系統(tǒng)相匹配,因此對(duì)于學(xué)生自己安裝和使用Visual Basic 6.0帶來困難。
3 VBA 作為程序設(shè)計(jì)語言的優(yōu)勢(shì)
3. 1 什么是VBA
VBA是Visual Basic for Application的縮寫,是MS-Office自帶的底層開發(fā)語言,它是在Office中包含的一種用于擴(kuò)展Office功能的編程語言。由于VBA是所見即所得,因此對(duì)于初學(xué)者而言,它的學(xué)習(xí)和使用要比其他程序設(shè)計(jì)語言簡單。
3.2 選擇VBA的優(yōu)勢(shì)
VBA是嵌套在Office軟件包中的應(yīng)用程序,它既提供了面向?qū)ο蟮某绦蛟O(shè)計(jì)方法和比較完整的程序設(shè)計(jì)語言,又簡單易學(xué)。因此VBA程序設(shè)計(jì)不僅能夠使學(xué)生建立基本的程序設(shè)計(jì)思維,同時(shí)也有利于培養(yǎng)學(xué)生的計(jì)算思維能力,非常適合非計(jì)算機(jī)專業(yè)的學(xué)生學(xué)習(xí)。
另外,由于VBA的存在,MS-Office不僅僅是應(yīng)用程序,更是一個(gè)開發(fā)平臺(tái),對(duì)于經(jīng)管類專業(yè)的學(xué)生,如果能夠在掌握Office辦公軟件的基礎(chǔ)上再掌握VBA的基本編程方法,那么學(xué)生在今后工作崗位上就可以根據(jù)自身需要利用VBA對(duì)Excel、Word和PowerPoint進(jìn)行二次開發(fā),以獲得自己所需的特定功能,實(shí)現(xiàn)繁瑣、重復(fù)工作的自動(dòng)化,進(jìn)而提高工作效率,更為把我校學(xué)生培養(yǎng)成高素質(zhì)、應(yīng)用型人才打下基礎(chǔ)。
3.3 課程改革設(shè)想
通過VBA程序設(shè)計(jì)語言的學(xué)習(xí),使學(xué)生在程序設(shè)計(jì)思想的構(gòu)建,以及計(jì)算思維的培養(yǎng)方面都能有所收獲。
同時(shí),在學(xué)生熟練掌握Office辦公軟件的基礎(chǔ)上,通過運(yùn)用VBA實(shí)現(xiàn)對(duì)其二次開發(fā),進(jìn)而獲得自身工作中所需的特定功能,達(dá)到工作效率最大化。特別是VBA在Excel中的應(yīng)用,可使經(jīng)管類專業(yè)學(xué)生在未來工作崗位上受益匪淺。
在教學(xué)中,采用能夠激發(fā)學(xué)生自主探究和能力提升的“任務(wù)驅(qū)動(dòng)”教學(xué)模式。
3.3.1 任務(wù)驅(qū)動(dòng)教學(xué)模式
“任務(wù)驅(qū)動(dòng)教學(xué)法”是一種建立在建構(gòu)主義學(xué)習(xí)理論基礎(chǔ)上的教學(xué)法,它將以往以傳授知識(shí)為主的傳統(tǒng)教學(xué)理念,轉(zhuǎn)變?yōu)橐越鉀Q問題、完成任務(wù)為主的多維互動(dòng)式的教學(xué)理念;將再現(xiàn)式教學(xué)轉(zhuǎn)變?yōu)樘骄渴綄W(xué)習(xí),使學(xué)生處于積極的學(xué)習(xí)狀態(tài),每一位學(xué)生都能根據(jù)自己對(duì)當(dāng)前問題的理解,運(yùn)用共有的知識(shí)和自己特有的經(jīng)驗(yàn)提出方案、解決問題。
“任務(wù)驅(qū)動(dòng)教學(xué)法”的基本環(huán)節(jié)是創(chuàng)設(shè)情境,確定問題(任務(wù)),自主學(xué)習(xí)、協(xié)作學(xué)習(xí),效果評(píng)價(jià)。
在日常生活中,經(jīng)常會(huì)接觸到通過驗(yàn)證用戶名和密碼才能進(jìn)入系統(tǒng)的情況,如在自動(dòng)存取款機(jī)上進(jìn)行操作,登陸QQ進(jìn)行聊天等,我們以設(shè)計(jì)系統(tǒng)登錄界面作為任務(wù),使學(xué)生帶著真實(shí)的任務(wù)在探索中學(xué)習(xí),在這個(gè)過程中,學(xué)生還會(huì)不斷地獲得成就感,可以更大地激發(fā)他們的求知欲望,逐步形成一個(gè)感知心智活動(dòng)的良性循環(huán),從而培養(yǎng)出獨(dú)立探索、勇于開拓進(jìn)取的自學(xué)能力。
課堂上設(shè)計(jì)的任務(wù)是要求學(xué)生設(shè)計(jì)一個(gè)如圖1所示的登陸界面程序。要求通過登陸界面,對(duì)進(jìn)行操作的用戶進(jìn)行用戶名和密碼的驗(yàn)證,當(dāng)用戶名和密碼均正確時(shí)才能通過驗(yàn)證,然后進(jìn)入如圖2所示的下一界面,完成更進(jìn)一步的操作。
代碼如下:
Private Sub CommandButton1_Click()
If Trim(TextBox1.Text) = "admin" And Trim(TextBox2.Text) = "666666" Then
判斷輸入的用戶名和密碼是否正確
UserForm1.Hide
UserForm2.Show
Else
MsgBox "密碼或用戶名不正確"
End If
End Sub
在完成任務(wù)的過程中,學(xué)生會(huì)逐步掌握選擇結(jié)構(gòu)的程序設(shè)計(jì)思想、常用控件、多重窗體的使用,并將其有機(jī)的結(jié)合起來,最終完成任務(wù)要求。
3.3.2 VBA在Microsoft Word中的應(yīng)用
從網(wǎng)上拷貝文字到Word文檔中時(shí),經(jīng)常會(huì)含有空段,但Word并不具有刪除空段功能,因此會(huì)使用戶感到不便。通過學(xué)習(xí)VBA,學(xué)生可以通過添加以下VBA代碼實(shí)現(xiàn)在Word中刪除空段功能。代碼如下:
Sub DelLine()
Dim i As Long
For i = ActiveDocument.Paragraphs.Count To 1 Step -1
統(tǒng)計(jì)文檔段落總數(shù),并從文檔最后一段開始找空段
If VBA.Len(ActiveDocument.Paragraphs(i).Range) = 1 Then
ActiveDocument.Paragraphs(i).Range.Delete 刪除空段
End If
Next i
End Sub
3.3.3 VBA在Microsoft Excel中的應(yīng)用
在數(shù)據(jù)處理中,有些數(shù)據(jù)的存放如圖3所示,即有些名字的前面有空格。由于數(shù)據(jù)量龐大,用戶無法對(duì)數(shù)據(jù)一一檢驗(yàn),此時(shí)便可通過編寫VBA代碼來刪除名字前的空格,使數(shù)據(jù)存放如圖4所示。
代碼如下:
Sub DelSpace()
Dim regEX As Object 創(chuàng)建正則對(duì)象
Set regEX = CreateObject("vbscript.regexp")
With regEX
.Global = True
.Pattern = "\s+" \s+表示匹配任何空白字符
End With
For Each Rng In [b2:b7]
n = n + 1
Cells(n + 1, "b") = regEX.Replace(Rng, "")
Next
Set regEX = Nothing 釋放對(duì)象
End Sub
3.3.4 VBA在Microsoft PowerPoint中的應(yīng)用
制作包括三道題、四張幻燈片的課堂小測(cè)驗(yàn)。四張幻燈片分別如下圖所示。單擊“開始”按鈕,界面轉(zhuǎn)向第二張幻燈片;單擊“上一題”或“下一題”按鈕時(shí),屏幕上會(huì)顯示相應(yīng)的界面;單擊“最后得分”按鈕時(shí),在文本框中顯示本次測(cè)驗(yàn)的成績,如圖8所示。
代碼如下:
Public zongfen(2) As Integer 全局?jǐn)?shù)組,用于記錄總得分
Private Sub CommandButton1_Click()
SlideShowWindows(1).View.GotoSlide 2 轉(zhuǎn)到第2張幻燈片
End Sub
Private Sub CommandButton1_Click() “下一題”按鈕的單擊事件代碼
If OptionButton3.Value = True Then
zongfen(0) = 2 正確時(shí),記分
Else
zongfen(0) = 0
End If
Label1.Caption = OptionButton3.Caption
SlideShowWindows(1).View.GotoSlide 3 轉(zhuǎn)到第3張幻燈片
End Sub
Private Sub CommandButton3_Click() “上一題”按鈕的單擊事件代碼
If OptionButton2.Value = True Then
zongfen(1) = 2
Else
zongfen(1) = 0
End If
Label1.Caption = OptionButton2.Caption
SlideShowWindows(1).View.GotoSlide 2
End Sub
Private Sub CommandButton4_Click() “下一題”按鈕的單擊事件代碼
If OptionButton2.Value = True Then
zongfen(1) = 2
Else
zongfen(1) = 0
End If
Label1.Caption = OptionButton2.Caption
SlideShowWindows(1).View.GotoSlide 4
End Sub
Private Sub CommandButton5_Click() “上一題”按鈕的單擊事件代碼
SlideShowWindows(1).View.GotoSlide 3
End Sub
Private Sub CommandButton6_Click() “最后得分”按鈕的單擊事件代碼
Dim s, i As Integer
If OptionButton4.Value = True Then
zongfen(2) = 2
Else
zongfen(2) = 0
End If
Label1.Caption = OptionButton4.Caption
s = 0
For i = 0 To 2
s = s + zongfen(i)
Next i
Label2.Caption = s
End Sub
4 結(jié)束語
程序設(shè)計(jì)語言的掌握對(duì)于我校經(jīng)管類專業(yè)學(xué)生是必要的,但我們的培養(yǎng)目標(biāo)是希望在講授程序設(shè)計(jì)的同時(shí)將計(jì)算思維融入教學(xué),鍛煉學(xué)生的計(jì)算思維能力,讓學(xué)生理解從計(jì)算思維出發(fā)思考,以計(jì)算的方式表達(dá)、分析和解決問題的整個(gè)過程,使學(xué)生掌握程序設(shè)計(jì)的思想以及問題的求解思路,而非將他們培養(yǎng)成為程序員。VBA語言作為程序設(shè)計(jì)語言恰好可以最有效地幫助我們實(shí)現(xiàn)教學(xué)以及人才培養(yǎng)的目標(biāo)。
參考文獻(xiàn):
[1] 徐衛(wèi)克.關(guān)于高校非計(jì)算機(jī)專業(yè)程序設(shè)計(jì)教學(xué)的思考[J]. 教育教學(xué)論壇,2014(2).
[2] 閆麗,鄧哲. 基于VBA的Office二次開發(fā)[J].通化師范學(xué)院學(xué)報(bào),2006(7) .
[3] 王海坤.淺談Visual Basic程序設(shè)計(jì)課程教學(xué)改革[J].科技資訊,2015(17).
[4] 龍馬高薪教育.VBA Office 從新手到高手[M].北京:人民郵電出版社,2015.
[5] 李桂芝.Visual Basic程序設(shè)計(jì)案例教程[M].北京:清華大學(xué)出版社,2013.