论文部分内容阅读
摘 要:教务管理是高校管理工作的核心,教务管理是否准确高效直接影响到高校教学质量和人才培养目标的实现。Excel是一款功能强大且实用的办公自动化软件,其提供了丰富的函数,并且可以通过VBA进行二次开发,提高数据处理效率。本文通过介绍VBA在通识课申报书信息汇总中的应用,进一步说明VBA在处理复杂数据、提高教务管理自动化中的作用。
关键词:Excel VBA 教务管理 自动化
一、引言
Microsoft Excel软件集成了丰富的函数具有强大的统计和分析能力被普遍应用于高校教务管理中,是高校教务管理不可或缺的办公自动化软件。在教务管理中常常需要处理大量的数据表格,如学生成绩表,四六级报名表以及各种申报表等,但仅仅使用Excel自带函数并不能完全满足教务管理工作繁杂多样的需要。VBA为这种情况提供了解决方案,管理人员可以通过VBA编程的方式对Excel数据进行二次开发,灵活处理Excel中的数据。
二、VBA基础知识
VBA是Visual Basic for Applications的英文縮写,是专门进行Microsoft办公软件开发的程序设计语言。通过VBA编程用户可以根据需要灵活对Excel中的数据进行处理,完成复杂的数据分析计算,实现Excel自带函数不能完成的功能。Microso办公软件集成了VBA开发环境,用户不需要再安装任何软件就可以进行VBA开发,以Excel2007为例,用户只要通过【Alt+F11】组合键就可以方便的调出VBA集成开发环境,或者通过Excel“开发工具”菜单项下的“宏”命令,输入需要建立的宏名称,再点击“创建”按钮调出VBA集成开发环境通过编程对数据进行处理。
三、利用VBA实现通识课申报书的信息提取
以我校教务处教学研究科为例,该科室负责学校本科层次培养方案的修订,课程建设、教改项目的组织管理等。每年通识课立项结项,教改立项结项都会收到教师上交的立项或结项材料,其中包括立项或结项的word电子版申报书,材料收齐之后我们需要将申报书的基本信息汇总到Excel表格中为下一步的评审做准备。以通识课申报书的信息提取为例,如图1所示是我校通识课的立项申报书,第一页的课程名称、负责人、开课单位和第二页的课程基本信息在评审之前需要汇总到Excel中制作成汇总表,如果通过手工汇总的方式需要耗费大量的人力和时间,效率低且难免在数据汇总过程中出现错误,而通过VBA编程的方法则可以轻松实现信息提取,节省人力提高效率。
图1 通识课申报书
提取word申报书中的信息有两种思路,一种是通过Word.Application.Documents.Tables().Cell()方法直接定位需要提取的信息,将信息复制到Excel表格中,这种方法需要多次在Word和Excel之间拷贝数据,适用于对简单表格数据的提取。另一种方法是通过Word.Application.Documents.Tables()定位到表格,直接将表格复制到Excel中,再通过Excel中的Cell()方法,将需要的数据提取到对应位置。下面具体介绍VBA程序设计思路。
首先将Excel汇总表跟所有word申报书放在同一目录中,循环遍历每一个申报书,将申报书信息提取到Excel表格相应位置。相关代码如下:
Dim wApp As New Word.Application
Dim wDoc As Word.Document
Dim wTable As Word.Table
p = ActiveWorkbook.Path
f = Dir(p & "\*.doc")‘查找本目录下的word文档
Set sh = Worksheets(1)‘表1存放最终汇总信息
Set sht = Worksheets(3)‘表3用来暂时存放从word申报书中拷贝过来的信息表
Do While Len(f)‘遍历每个申报书
Set wDoc = wApp.Documents.Open(p & "\" & f)‘打开申报书
sh.Cells(i, "v") = f‘汇总申报书文件名
myclear ’自定义函数用来清除申报书中的特殊字符
sh.Cells(i, "A") = wDoc.Tables(1).Cell(1, 2).Range.Text‘将申报书第一个表格的一行二列即“课程名称”汇总到Excel表格的第一列
……
sht.Cells.Clear ‘清空临时表
wDoc.Tables(2).Select‘选择申报书的第二个表格
wDoc.ActiveWindow.Selection.Copy‘复制表格
sht.Activate
sht.Range("A1").Select
sht.Cells.NumberFormat = "@"
sht.PasteSpecial Format:="文本", Link:=False, DisplayAsIcon:=False‘以文本形式将申报书复制到临时表
sh.Cells(i, "f") = sht.Cells(2, 2)‘提取课程英文名到汇总表f列
……
loop
以上代码中用到了自定义函数myclear,此函数的作用是为了清除申报书中的回车符,如果文字中含有回车符,被提取到Excel表格中时,回车后面的文字会粘贴到下一行,造成数据串行。Myclear函数主要代码如下:
wApp.Selection.Find.ClearFormatting
wApp.Selection.Find.Replacement.ClearFormatting
With wApp.Selection.Find
.Text = "^p"
.Replacement.Text = "" ‘将回车替换成空文本
……
End With
wApp.Selection.Find.Execute Replace:=wdReplaceAll
通过运行以上VBA编写的程序,短短几秒钟之后上百门通识课立项申报书的信息就被自动汇总完成。
四、结语
通过开发和完善,VBA程序在工作实践中取得了很好的效果,快速完成对上百门通识课立项申报书的信息汇总,VBA程序稍作修改就可以实现对教改、大创计划、实验室改革基金等各种申报书的信息汇总,减轻人工进行数据汇总的工作量,提高工作效率。
参考文献:
[1]STEPHEN BULLEN,ROB BOVEY,JOHN GREEN.Professional Excel Development: The Definitive Guide to Developing Applications Using Microsoft Excel and VBA[M].电子工业出版社,2007.
作者简介:耿帅(1987—),男,汉族,籍贯山东省邹平县、2013年毕业于天津师范大学学校教育技术专业,供职天津师范大学教务处 、学位硕士、研究方向教育信息化。
关键词:Excel VBA 教务管理 自动化
一、引言
Microsoft Excel软件集成了丰富的函数具有强大的统计和分析能力被普遍应用于高校教务管理中,是高校教务管理不可或缺的办公自动化软件。在教务管理中常常需要处理大量的数据表格,如学生成绩表,四六级报名表以及各种申报表等,但仅仅使用Excel自带函数并不能完全满足教务管理工作繁杂多样的需要。VBA为这种情况提供了解决方案,管理人员可以通过VBA编程的方式对Excel数据进行二次开发,灵活处理Excel中的数据。
二、VBA基础知识
VBA是Visual Basic for Applications的英文縮写,是专门进行Microsoft办公软件开发的程序设计语言。通过VBA编程用户可以根据需要灵活对Excel中的数据进行处理,完成复杂的数据分析计算,实现Excel自带函数不能完成的功能。Microso办公软件集成了VBA开发环境,用户不需要再安装任何软件就可以进行VBA开发,以Excel2007为例,用户只要通过【Alt+F11】组合键就可以方便的调出VBA集成开发环境,或者通过Excel“开发工具”菜单项下的“宏”命令,输入需要建立的宏名称,再点击“创建”按钮调出VBA集成开发环境通过编程对数据进行处理。
三、利用VBA实现通识课申报书的信息提取
以我校教务处教学研究科为例,该科室负责学校本科层次培养方案的修订,课程建设、教改项目的组织管理等。每年通识课立项结项,教改立项结项都会收到教师上交的立项或结项材料,其中包括立项或结项的word电子版申报书,材料收齐之后我们需要将申报书的基本信息汇总到Excel表格中为下一步的评审做准备。以通识课申报书的信息提取为例,如图1所示是我校通识课的立项申报书,第一页的课程名称、负责人、开课单位和第二页的课程基本信息在评审之前需要汇总到Excel中制作成汇总表,如果通过手工汇总的方式需要耗费大量的人力和时间,效率低且难免在数据汇总过程中出现错误,而通过VBA编程的方法则可以轻松实现信息提取,节省人力提高效率。
图1 通识课申报书
提取word申报书中的信息有两种思路,一种是通过Word.Application.Documents.Tables().Cell()方法直接定位需要提取的信息,将信息复制到Excel表格中,这种方法需要多次在Word和Excel之间拷贝数据,适用于对简单表格数据的提取。另一种方法是通过Word.Application.Documents.Tables()定位到表格,直接将表格复制到Excel中,再通过Excel中的Cell()方法,将需要的数据提取到对应位置。下面具体介绍VBA程序设计思路。
首先将Excel汇总表跟所有word申报书放在同一目录中,循环遍历每一个申报书,将申报书信息提取到Excel表格相应位置。相关代码如下:
Dim wApp As New Word.Application
Dim wDoc As Word.Document
Dim wTable As Word.Table
p = ActiveWorkbook.Path
f = Dir(p & "\*.doc")‘查找本目录下的word文档
Set sh = Worksheets(1)‘表1存放最终汇总信息
Set sht = Worksheets(3)‘表3用来暂时存放从word申报书中拷贝过来的信息表
Do While Len(f)‘遍历每个申报书
Set wDoc = wApp.Documents.Open(p & "\" & f)‘打开申报书
sh.Cells(i, "v") = f‘汇总申报书文件名
myclear ’自定义函数用来清除申报书中的特殊字符
sh.Cells(i, "A") = wDoc.Tables(1).Cell(1, 2).Range.Text‘将申报书第一个表格的一行二列即“课程名称”汇总到Excel表格的第一列
……
sht.Cells.Clear ‘清空临时表
wDoc.Tables(2).Select‘选择申报书的第二个表格
wDoc.ActiveWindow.Selection.Copy‘复制表格
sht.Activate
sht.Range("A1").Select
sht.Cells.NumberFormat = "@"
sht.PasteSpecial Format:="文本", Link:=False, DisplayAsIcon:=False‘以文本形式将申报书复制到临时表
sh.Cells(i, "f") = sht.Cells(2, 2)‘提取课程英文名到汇总表f列
……
loop
以上代码中用到了自定义函数myclear,此函数的作用是为了清除申报书中的回车符,如果文字中含有回车符,被提取到Excel表格中时,回车后面的文字会粘贴到下一行,造成数据串行。Myclear函数主要代码如下:
wApp.Selection.Find.ClearFormatting
wApp.Selection.Find.Replacement.ClearFormatting
With wApp.Selection.Find
.Text = "^p"
.Replacement.Text = "" ‘将回车替换成空文本
……
End With
wApp.Selection.Find.Execute Replace:=wdReplaceAll
通过运行以上VBA编写的程序,短短几秒钟之后上百门通识课立项申报书的信息就被自动汇总完成。
四、结语
通过开发和完善,VBA程序在工作实践中取得了很好的效果,快速完成对上百门通识课立项申报书的信息汇总,VBA程序稍作修改就可以实现对教改、大创计划、实验室改革基金等各种申报书的信息汇总,减轻人工进行数据汇总的工作量,提高工作效率。
参考文献:
[1]STEPHEN BULLEN,ROB BOVEY,JOHN GREEN.Professional Excel Development: The Definitive Guide to Developing Applications Using Microsoft Excel and VBA[M].电子工业出版社,2007.
作者简介:耿帅(1987—),男,汉族,籍贯山东省邹平县、2013年毕业于天津师范大学学校教育技术专业,供职天津师范大学教务处 、学位硕士、研究方向教育信息化。