论文部分内容阅读
教师在教学与教研工作中,经常需要组织问卷调查活动。传统的纸质问卷法费时也容易统计出错。为提高效率,后来产生了交互网页的调查方法,但后者要求教师具备教学服务器,并且在面对大批量非注册用户的调查时力不从心,常出现同一人多次回答同一问卷和对问卷中各个问题的回答人数不一致等情况,降低了调查结果的可信度。为有效解决上述问题,笔者以“有关Word编写教学文档的若干问题质疑”中的14个自查问题为例,采用广大读者熟悉的Word界面,设计了基于控件的交互式自查问卷。使用者在回答完所有自查问题后,单击指定命令按钮即可将自查结果送到Excel文档中,以便统计。
一、交互界面与功能简介
“Word应用操作(中级)自查问卷”交互界面包括六部分:标题、使用说明区(含调查说明、准备工作、操作说明、特别注意等内容)、命令按钮区(包括“以年月、班名和学号保存本文档”和“生成Excel自查结果文件”两个按钮)、被调查者数据选择输入区[包括“学习或培训班名称(ClassName_CBox)”、“年份(Year_CBox)”、“月份(Month_CBox)”、“学号(StuNum_CBox)”、“姓名(StuName_CBox)”和“单位(UnitName_CBox)”等6个下拉组合框]、自查问题回答区(下拉组合框:Q_CBox1~14)以及下方的被调查者原始数据图标(内置全部被调查者原始数据和自查问题选择答案)。所有控件的名称均可在VBA编辑器单击F4键后在“属性”窗口中修改。
二、各功能模块设计与VBA程序编制
(一)通用变量、数组与对象声明
Dim i, j As Integer
Dim qOption1(1 To 2), qOption2(1 To 6), qOption3(1 To 13), qOption4(1 To 101) As String ’控件选项数组
Dim ArrCtrlIndex() As Variant ’控件索引数组
Dim ArrCtrlName() As String’控件名字数组
Dim CtrlObj As Object ’控件对象
(二)控件数组的初始化代码(参阅7、8期合刊)
Private Sub initCtrlArray()’将文档中所有控件的信息分别放入两个数组中
Dim l As Integer
ReDim ArrCtrlIndex(1 To ActiveDocument.InlineShapes.Count) As Variant
ReDim ArrCtrlName(1 To ActiveDocument.InlineShapes.Count) As String
For l = 1 To ActiveDocument.InlineShapes.Count
’数组ArrCtrlIndex用于存放控件索引
ArrCtrlIndex(l) = l
’数组ArrCtrlName用于存放控件名称
ArrCtrlName(l) = ActiveDocument.InlineShapes. Item(l). OLEFormat.Object.Name
Next l
End Sub
(三)获取控件对象的函数(参阅7、8期合刊)
Private Function getCtrlObject(CtrlName As String) As Object’函数值为名字符合要求的控件对象
Dim l As Integer
For l = 1 To UBound(ArrCtrlName)
If (CtrlName = ArrCtrlName(l)) Then
Set getCtrlObject = ActiveDocument.InlineShapes.Item(ArrCtrlIndex(l)).OLEFormat.Object
Exit Function
End If
Next l
End Function
(四)打开文档时执行的进程代码
Private Sub Document_Open()
’数组初始化:将文档中所有控件的信息分别放入两个数组中
initCtrlArray
’设置“学习班名称”、“学生编号”、“学生姓名”、“单位名称”、“年份”、“月份”组合框对象、对应的数组选项和组合框选项赋值,典型代码如下:
Set CtrlObj = getCtrlObject("ClassName _CBox")
For i = 1 To 6
’对“学习班名称”数组循环
qOption2(i) = DataList.Cells(i 1, 1).Value
Next i
’对“学习班名称”组合框选项赋值
CtrlObj.List() = qOption2()
……
’设置第1~14题选项组合框对象,对其数组和组合框选项赋值
For i = 1 To 14
Set CtrlObj = getCtrlObject("Q_CBox"
一、交互界面与功能简介
“Word应用操作(中级)自查问卷”交互界面包括六部分:标题、使用说明区(含调查说明、准备工作、操作说明、特别注意等内容)、命令按钮区(包括“以年月、班名和学号保存本文档”和“生成Excel自查结果文件”两个按钮)、被调查者数据选择输入区[包括“学习或培训班名称(ClassName_CBox)”、“年份(Year_CBox)”、“月份(Month_CBox)”、“学号(StuNum_CBox)”、“姓名(StuName_CBox)”和“单位(UnitName_CBox)”等6个下拉组合框]、自查问题回答区(下拉组合框:Q_CBox1~14)以及下方的被调查者原始数据图标(内置全部被调查者原始数据和自查问题选择答案)。所有控件的名称均可在VBA编辑器单击F4键后在“属性”窗口中修改。
二、各功能模块设计与VBA程序编制
(一)通用变量、数组与对象声明
Dim i, j As Integer
Dim qOption1(1 To 2), qOption2(1 To 6), qOption3(1 To 13), qOption4(1 To 101) As String ’控件选项数组
Dim ArrCtrlIndex() As Variant ’控件索引数组
Dim ArrCtrlName() As String’控件名字数组
Dim CtrlObj As Object ’控件对象
(二)控件数组的初始化代码(参阅7、8期合刊)
Private Sub initCtrlArray()’将文档中所有控件的信息分别放入两个数组中
Dim l As Integer
ReDim ArrCtrlIndex(1 To ActiveDocument.InlineShapes.Count) As Variant
ReDim ArrCtrlName(1 To ActiveDocument.InlineShapes.Count) As String
For l = 1 To ActiveDocument.InlineShapes.Count
’数组ArrCtrlIndex用于存放控件索引
ArrCtrlIndex(l) = l
’数组ArrCtrlName用于存放控件名称
ArrCtrlName(l) = ActiveDocument.InlineShapes. Item(l). OLEFormat.Object.Name
Next l
End Sub
(三)获取控件对象的函数(参阅7、8期合刊)
Private Function getCtrlObject(CtrlName As String) As Object’函数值为名字符合要求的控件对象
Dim l As Integer
For l = 1 To UBound(ArrCtrlName)
If (CtrlName = ArrCtrlName(l)) Then
Set getCtrlObject = ActiveDocument.InlineShapes.Item(ArrCtrlIndex(l)).OLEFormat.Object
Exit Function
End If
Next l
End Function
(四)打开文档时执行的进程代码
Private Sub Document_Open()
’数组初始化:将文档中所有控件的信息分别放入两个数组中
initCtrlArray
’设置“学习班名称”、“学生编号”、“学生姓名”、“单位名称”、“年份”、“月份”组合框对象、对应的数组选项和组合框选项赋值,典型代码如下:
Set CtrlObj = getCtrlObject("ClassName _CBox")
For i = 1 To 6
’对“学习班名称”数组循环
qOption2(i) = DataList.Cells(i 1, 1).Value
Next i
’对“学习班名称”组合框选项赋值
CtrlObj.List() = qOption2()
……
’设置第1~14题选项组合框对象,对其数组和组合框选项赋值
For i = 1 To 14
Set CtrlObj = getCtrlObject("Q_CBox"