论文部分内容阅读
摘要:文章通过对我校开设的“VB程序设计”课程的现状和问题的分析,提出了用“VBA程序设计”替代目前开设的“VB程序设计”,并分析了将“VBA程序设计”作为非计算机专业计算机程序设计语言课程的优势,同时提出了“VBA程序设计”课程教学方法和模式,给出“VBA程序设计”案例,供该课程改革使用。
关键词:程序设计;VB;VBA;计算思维
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)28-0073-03
1 概述
中国高等院校计算机基础教育课程体系2014中指出:非计算机专业的本科计算机教育宗旨是以应用为目标,培养学生掌握应用计算机的能力,为将计算机与信息技术用于所学专业打下基础,使学生最终能够运用计算机和其相对应学科的知识,处理和解决其专业的实际应用问题,使学生逐渐成为既熟悉其专业知识,又掌握计算机应用的复合型人才。鉴于此,我校面向经管类专业学生开设了《VB程序设计》课程。
2 VB程序设计课程现状及存在问题
VB程序设计是我校针对经管类专业学生开设的唯一的一门程序设计课程。自2012年开始,从减轻学生负担的角度考虑,程序设计语言完成了从C语言到VB语言的更替,但在教学中却发现,学生除了像学习C语言一样需要记住众多的概念、术语、语句格式、语法规则等等外,还要记住VB中的控件及众多的控件属性(且为英文描述),因此对于学生而言非但没有减轻负担,反而还要记住更多的内容,进而加重了学生的学习负担。同时,经管类专业学生与理工类专业学生具有着相同的程序设计要求,这对于大部分将来不会直接从事程序设计工作的经管类学生而言,无疑使学生们认为VB程序设计缺乏实用价值,并逐渐降低了对课程的学习兴趣,有些学生通过抄袭完成课程内容,有些学生甚至选择放弃。
另外,随着操作系统不断更新,VB还要与不断升级的操作系统相匹配,因此对于学生自己安装和使用Visual Basic 6.0带来困难。
3 VBA 作为程序设计语言的优势
3. 1 什么是VBA
VBA是Visual Basic for Application的缩写,是MS-Office自带的底层开发语言,它是在Office中包含的一种用于扩展Office功能的编程语言。由于VBA是所见即所得,因此对于初学者而言,它的学习和使用要比其他程序设计语言简单。
3.2 选择VBA的优势
VBA是嵌套在Office软件包中的应用程序,它既提供了面向对象的程序设计方法和比较完整的程序设计语言,又简单易学。因此VBA程序设计不仅能够使学生建立基本的程序设计思维,同时也有利于培养学生的计算思维能力,非常适合非计算机专业的学生学习。
另外,由于VBA的存在,MS-Office不仅仅是应用程序,更是一个开发平台,对于经管类专业的学生,如果能够在掌握Office办公软件的基础上再掌握VBA的基本编程方法,那么学生在今后工作岗位上就可以根据自身需要利用VBA对Excel、Word和PowerPoint进行二次开发,以获得自己所需的特定功能,实现繁琐、重复工作的自动化,进而提高工作效率,更为把我校学生培养成高素质、应用型人才打下基础。
3.3 课程改革设想
通过VBA程序设计语言的学习,使学生在程序设计思想的构建,以及计算思维的培养方面都能有所收获。
同时,在学生熟练掌握Office办公软件的基础上,通过运用VBA实现对其二次开发,进而获得自身工作中所需的特定功能,达到工作效率最大化。特别是VBA在Excel中的应用,可使经管类专业学生在未来工作岗位上受益匪浅。
在教学中,采用能够激发学生自主探究和能力提升的“任务驱动”教学模式。
3.3.1 任务驱动教学模式
“任务驱动教学法”是一种建立在建构主义学习理论基础上的教学法,它将以往以传授知识为主的传统教学理念,转变为以解决问题、完成任务为主的多维互动式的教学理念;将再现式教学转变为探究式学习,使学生处于积极的学习状态,每一位学生都能根据自己对当前问题的理解,运用共有的知识和自己特有的经验提出方案、解决问题。
“任务驱动教学法”的基本环节是创设情境,确定问题(任务),自主学习、协作学习,效果评价。
在日常生活中,经常会接触到通过验证用户名和密码才能进入系统的情况,如在自动存取款机上进行操作,登陆QQ进行聊天等,我们以设计系统登录界面作为任务,使学生带着真实的任务在探索中学习,在这个过程中,学生还会不断地获得成就感,可以更大地激发他们的求知欲望,逐步形成一个感知心智活动的良性循环,从而培养出独立探索、勇于开拓进取的自学能力。
课堂上设计的任务是要求学生设计一个如图1所示的登陆界面程序。要求通过登陆界面,对进行操作的用户进行用户名和密码的验证,当用户名和密码均正确时才能通过验证,然后进入如图2所示的下一界面,完成更进一步的操作。
代码如下:
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
在完成任务的过程中,学生会逐步掌握选择结构的程序设计思想、常用控件、多重窗体的使用,并将其有机的结合起来,最终完成任务要求。 3.3.2 VBA在Microsoft Word中的应用
从网上拷贝文字到Word文档中时,经常会含有空段,但Word并不具有删除空段功能,因此会使用户感到不便。通过学习VBA,学生可以通过添加以下VBA代码实现在Word中删除空段功能。代码如下:
Sub DelLine()
Dim i As Long
For i = ActiveDocument.Paragraphs.Count To 1 Step -1
’统计文档段落总数,并从文档最后一段开始找空段
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中的应用
在数据处理中,有些数据的存放如图3所示,即有些名字的前面有空格。由于数据量庞大,用户无法对数据一一检验,此时便可通过编写VBA代码来删除名字前的空格,使数据存放如图4所示。
代码如下:
Sub DelSpace()
Dim regEX As Object ’创建正则对象
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 ’释放对象
End Sub
3.3.4 VBA在Microsoft PowerPoint中的应用
制作包括三道题、四张幻灯片的课堂小测验。四张幻灯片分别如下图所示。单击“开始”按钮,界面转向第二张幻灯片;单击“上一题”或“下一题”按钮时,屏幕上会显示相应的界面;单击“最后得分”按钮时,在文本框中显示本次测验的成绩,如图8所示。
代码如下:
Public zongfen(2) As Integer ’全局数组,用于记录总得分
Private Sub CommandButton1_Click()
SlideShowWindows(1).View.GotoSlide 2 ’转到第2张幻灯片
End Sub
Private Sub CommandButton1_Click() ’“下一题”按钮的单击事件代码
If OptionButton3.Value = True Then
zongfen(0) = 2 ’正确时,记分
Else
zongfen(0) = 0
End If
Label1.Caption = OptionButton3.Caption
SlideShowWindows(1).View.GotoSlide 3 ’转到第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 结束语
程序设计语言的掌握对于我校经管类专业学生是必要的,但我们的培养目标是希望在讲授程序设计的同时将计算思维融入教学,锻炼学生的计算思维能力,让学生理解从计算思维出发思考,以计算的方式表达、分析和解决问题的整个过程,使学生掌握程序设计的思想以及问题的求解思路,而非将他们培养成为程序员。VBA语言作为程序设计语言恰好可以最有效地帮助我们实现教学以及人才培养的目标。
参考文献:
[1] 徐卫克.关于高校非计算机专业程序设计教学的思考[J]. 教育教学论坛,2014(2).
[2] 闫丽,邓哲. 基于VBA的Office二次开发[J].通化师范学院学报,2006(7) .
[3] 王海坤.浅谈Visual Basic程序设计课程教学改革[J].科技资讯,2015(17).
[4] 龙马高薪教育.VBA Office 从新手到高手[M].北京:人民邮电出版社,2015.
[5] 李桂芝.Visual Basic程序设计案例教程[M].北京:清华大学出版社,2013.
关键词:程序设计;VB;VBA;计算思维
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)28-0073-03
1 概述
中国高等院校计算机基础教育课程体系2014中指出:非计算机专业的本科计算机教育宗旨是以应用为目标,培养学生掌握应用计算机的能力,为将计算机与信息技术用于所学专业打下基础,使学生最终能够运用计算机和其相对应学科的知识,处理和解决其专业的实际应用问题,使学生逐渐成为既熟悉其专业知识,又掌握计算机应用的复合型人才。鉴于此,我校面向经管类专业学生开设了《VB程序设计》课程。
2 VB程序设计课程现状及存在问题
VB程序设计是我校针对经管类专业学生开设的唯一的一门程序设计课程。自2012年开始,从减轻学生负担的角度考虑,程序设计语言完成了从C语言到VB语言的更替,但在教学中却发现,学生除了像学习C语言一样需要记住众多的概念、术语、语句格式、语法规则等等外,还要记住VB中的控件及众多的控件属性(且为英文描述),因此对于学生而言非但没有减轻负担,反而还要记住更多的内容,进而加重了学生的学习负担。同时,经管类专业学生与理工类专业学生具有着相同的程序设计要求,这对于大部分将来不会直接从事程序设计工作的经管类学生而言,无疑使学生们认为VB程序设计缺乏实用价值,并逐渐降低了对课程的学习兴趣,有些学生通过抄袭完成课程内容,有些学生甚至选择放弃。
另外,随着操作系统不断更新,VB还要与不断升级的操作系统相匹配,因此对于学生自己安装和使用Visual Basic 6.0带来困难。
3 VBA 作为程序设计语言的优势
3. 1 什么是VBA
VBA是Visual Basic for Application的缩写,是MS-Office自带的底层开发语言,它是在Office中包含的一种用于扩展Office功能的编程语言。由于VBA是所见即所得,因此对于初学者而言,它的学习和使用要比其他程序设计语言简单。
3.2 选择VBA的优势
VBA是嵌套在Office软件包中的应用程序,它既提供了面向对象的程序设计方法和比较完整的程序设计语言,又简单易学。因此VBA程序设计不仅能够使学生建立基本的程序设计思维,同时也有利于培养学生的计算思维能力,非常适合非计算机专业的学生学习。
另外,由于VBA的存在,MS-Office不仅仅是应用程序,更是一个开发平台,对于经管类专业的学生,如果能够在掌握Office办公软件的基础上再掌握VBA的基本编程方法,那么学生在今后工作岗位上就可以根据自身需要利用VBA对Excel、Word和PowerPoint进行二次开发,以获得自己所需的特定功能,实现繁琐、重复工作的自动化,进而提高工作效率,更为把我校学生培养成高素质、应用型人才打下基础。
3.3 课程改革设想
通过VBA程序设计语言的学习,使学生在程序设计思想的构建,以及计算思维的培养方面都能有所收获。
同时,在学生熟练掌握Office办公软件的基础上,通过运用VBA实现对其二次开发,进而获得自身工作中所需的特定功能,达到工作效率最大化。特别是VBA在Excel中的应用,可使经管类专业学生在未来工作岗位上受益匪浅。
在教学中,采用能够激发学生自主探究和能力提升的“任务驱动”教学模式。
3.3.1 任务驱动教学模式
“任务驱动教学法”是一种建立在建构主义学习理论基础上的教学法,它将以往以传授知识为主的传统教学理念,转变为以解决问题、完成任务为主的多维互动式的教学理念;将再现式教学转变为探究式学习,使学生处于积极的学习状态,每一位学生都能根据自己对当前问题的理解,运用共有的知识和自己特有的经验提出方案、解决问题。
“任务驱动教学法”的基本环节是创设情境,确定问题(任务),自主学习、协作学习,效果评价。
在日常生活中,经常会接触到通过验证用户名和密码才能进入系统的情况,如在自动存取款机上进行操作,登陆QQ进行聊天等,我们以设计系统登录界面作为任务,使学生带着真实的任务在探索中学习,在这个过程中,学生还会不断地获得成就感,可以更大地激发他们的求知欲望,逐步形成一个感知心智活动的良性循环,从而培养出独立探索、勇于开拓进取的自学能力。
课堂上设计的任务是要求学生设计一个如图1所示的登陆界面程序。要求通过登陆界面,对进行操作的用户进行用户名和密码的验证,当用户名和密码均正确时才能通过验证,然后进入如图2所示的下一界面,完成更进一步的操作。
代码如下:
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
在完成任务的过程中,学生会逐步掌握选择结构的程序设计思想、常用控件、多重窗体的使用,并将其有机的结合起来,最终完成任务要求。 3.3.2 VBA在Microsoft Word中的应用
从网上拷贝文字到Word文档中时,经常会含有空段,但Word并不具有删除空段功能,因此会使用户感到不便。通过学习VBA,学生可以通过添加以下VBA代码实现在Word中删除空段功能。代码如下:
Sub DelLine()
Dim i As Long
For i = ActiveDocument.Paragraphs.Count To 1 Step -1
’统计文档段落总数,并从文档最后一段开始找空段
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中的应用
在数据处理中,有些数据的存放如图3所示,即有些名字的前面有空格。由于数据量庞大,用户无法对数据一一检验,此时便可通过编写VBA代码来删除名字前的空格,使数据存放如图4所示。
代码如下:
Sub DelSpace()
Dim regEX As Object ’创建正则对象
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 ’释放对象
End Sub
3.3.4 VBA在Microsoft PowerPoint中的应用
制作包括三道题、四张幻灯片的课堂小测验。四张幻灯片分别如下图所示。单击“开始”按钮,界面转向第二张幻灯片;单击“上一题”或“下一题”按钮时,屏幕上会显示相应的界面;单击“最后得分”按钮时,在文本框中显示本次测验的成绩,如图8所示。
代码如下:
Public zongfen(2) As Integer ’全局数组,用于记录总得分
Private Sub CommandButton1_Click()
SlideShowWindows(1).View.GotoSlide 2 ’转到第2张幻灯片
End Sub
Private Sub CommandButton1_Click() ’“下一题”按钮的单击事件代码
If OptionButton3.Value = True Then
zongfen(0) = 2 ’正确时,记分
Else
zongfen(0) = 0
End If
Label1.Caption = OptionButton3.Caption
SlideShowWindows(1).View.GotoSlide 3 ’转到第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 结束语
程序设计语言的掌握对于我校经管类专业学生是必要的,但我们的培养目标是希望在讲授程序设计的同时将计算思维融入教学,锻炼学生的计算思维能力,让学生理解从计算思维出发思考,以计算的方式表达、分析和解决问题的整个过程,使学生掌握程序设计的思想以及问题的求解思路,而非将他们培养成为程序员。VBA语言作为程序设计语言恰好可以最有效地帮助我们实现教学以及人才培养的目标。
参考文献:
[1] 徐卫克.关于高校非计算机专业程序设计教学的思考[J]. 教育教学论坛,2014(2).
[2] 闫丽,邓哲. 基于VBA的Office二次开发[J].通化师范学院学报,2006(7) .
[3] 王海坤.浅谈Visual Basic程序设计课程教学改革[J].科技资讯,2015(17).
[4] 龙马高薪教育.VBA Office 从新手到高手[M].北京:人民邮电出版社,2015.
[5] 李桂芝.Visual Basic程序设计案例教程[M].北京:清华大学出版社,2013.