基于W ord表单的构建与数据收集

2019-08-15 02:00
装备制造技术 2019年6期
关键词:表单选项卡控件

杨 建

(广西柳工机械股份有限公司,广西 柳州545007)

0 引言

在无纸化办公中,利用表单制作调查问卷、电子考卷等,通过表单收集问卷、答案数据以便处理。目前制作表单的软件有Microsoft InfoPath Designer、Adobe LiveCycle Designer等软件,填写这些表单需要使用相应的软件,而在一般的计算机中缺乏安装相应的软件,使填写表单成为困难。Microsoft Word作为最常用的办公软件在每台计算机上基本都有安装,其强大的功能可以容易构建、填写表单,结合VBA、Excel对表单数据进行收集,很方便快捷。本文通过实例详细讲解Word表单的构建和数据收集方法,让读者可以通过常见的办公软件轻松制作出专业的调查问卷、电子考卷等,并能方便快捷地回收数据,以实现无纸化办公、减少错误、提高工作效率。

1 表单制作环境

在Word的环境下构建表单要用到内容控件,要求Word为2007及以上版本。下文以Word 2013为说明如何构建表单,其它Word版本的操作类同。

2 构建表单

2.1 添加“开发工具”选项卡

单击Word功能区“文件”选项卡,然后单击“选项”,打开“Word选项”窗口。点击窗口左则“自定义功能区”项,然后在窗口右则“自定义功能区”下的组合框中选择“主选项卡”,在下面的“主选项卡”列表中勾选“开发工具”项,点击“确定”。Word功能区出现“开发工具”选项卡,如图1所示。

图1 “开发工具”选项卡

2.2 内容控件介绍

如图2所示框内为构建表单的内容控件组。内容控件不同于旧式窗体控件和ActiveX控件。

图2 内容控件组

2.2.1 格式文本内容控件

格式文本内容控件位于内容控件组中的第1行第1列,其可以输入文本、表格、图片等对象,并能对其中的对象进行格式化设置。

在文档中把光标定位到需要插入内容控件的位置,点击“格式文本内容控件”,格式文本内容控件插入到光标所在位置。

选中文档中的格式文本内容控件,点击“开发工具”选项卡上的“属性”按钮,打开内容控件属性窗口,如图3所示。

图3 格式文本内容控件属性窗口

“标题”是控件标题栏显示的内容。“标记”是控件的“Tag”标签属性。“显示为”设置控件在文档中的显示样式。“颜色”设置控件显示样式的颜色。“使用样式设置键入空控件中的文本格式”设置控件中的对象的共性格式。勾选“内容被编辑后删除内容控件”后,当控件中的对象被编辑时内容控件会自动删除。勾选“无法删除内容控件”后,内容控件不能删除,但其中的对象能编辑。勾选“无法编辑内容”后,内容控件中的对象不能编辑,但整个内容控件能删除。

2.2.2 组合框内容控件

组合框内容控件位于内容控件组中的第2行第2列。组合框内容控件可以输入或从下拉选项中选择文本。组合框内容控件通常用于单选项。组合框内容控件属性窗口如图4所示。

图4 组合框内容控件属性窗口

单击“添加”按钮可以添加下拉列表选项,如图5。其中“显示名称”是下拉列表显示的文本,“值”是下拉列表显示名称对应的“Value”属性值。

图5 下拉列表添加选项窗口

通过“修改”、“删除”等按钮可以对下拉列表的选项进行编辑。

其它属性的设置与格式文本内容控件属性设置相同。

2.2.3 其它内容控件

其它内容控件使用方法、属性设置与上述两个内容控件基本相同,这里不再阐述。

2.3 表单制作

以图6的表单为例说明表单制作过程。

图6 表单实例

先制作表格,在需要填表人填写的地方插入内容控件。“单位”、“联系人”、“联系电话”、“联系地址”、“需求数量”、“填表人”使用纯文本内容控件,“产品配置”使用格式文本内容控件,“需求产品型号”使用组合框内容控件,“交货日期”、“填表日期”使用日期选取器内容控件,“是否特殊订单”使用复选框内容控件。

点击“开发工具”选项卡的“设计模式”命令按钮,进入设计模式。在内容控件开始/结束标记之间编辑输入内容提示,如图7所示。编辑完成后再点击“设计模式”命令按钮,退出设计模式。

图7 编辑输入内容提示

2.4 表单保护设置

表单作好后,还对它进行保护设置,其目的是保护非填写部分不被修改,填表人只能填写、编辑内容控件中的对象[1]。

点击“开发工具”选项卡的“限制编辑”命令按钮,在“限制编辑”窗中,如图8所示,勾选“仅允许在文档中进行此类型的编辑”,在下面的组合框中选取“填写窗体”,点击“是,启动强制保护”按钮,在弹出的“保护方法”对话框中可以设置保护密码,密码留空时为无密码保护。点击“确定”按钮,完成表单保护设置。

图8 限制编辑窗

3 表单数据的收集

把表单的数据导入Excel工作表中,利用Excel的强大功能可对数据进行处理。把数据导入Excel工作表的方法是使用VBA宏代码。

打开Excel,添加“开发工具”选项卡。点击“开发工具”选项卡的“Visual Basic”命令按钮,进入宏代码编写界面。

点击宏代码编写界面的“插入”菜单,点击“模块”,插入一个模块。在该模块的宏代码编辑窗口输入下面的代码。

Sub读取数据()

Dim i As Integer

Dim j As Integer

Dim R As Integer

Dim WdocName As String

Dim WdocFolder As String

‘打开对话框,选择表单所在的文件夹:

With_

Application.FileDialog (msoFileDialogFolderPicker)‘打开对话框,选择表单所在的文件夹

If.Show=True Then

WdocFolder=.SelectedItems(1)

End If

End With

If WdocFolder=""Then Exit Sub

'打开表单读取数据:

Dim WordAppl As Word.Application

Dim Wdoc As Document

Dim FileTryp As Variant

FileTryp=Array("docx","docm")‘设置表单文档的两种文件类型

On Error Resume Next

Set WordAppl=GetObject(,"Word.Application") '获取Word对象

WordAppl.Visible=False

If Err.Number<>0 Then'如果进程没有Word对象,则创建Word对象

Set WordAppl= CreateObject("Word.Application") '创建Word对象

我这样孜孜不倦地寻找白丽筠,一年后传来了一个比较靠谱的消息。有人说,在广东东莞见到了白丽筠。听到这个消息,我马上就去了那座城市。为了找到白丽筠,我必须寻遍花街柳巷,深入一家家娱乐会所。我没有钱,穿戴寒酸,人瘦毛长,脸颊都凹陷下去了。这副形象自然不受欢迎。

End If

For i=0 To UBound(FileTryp)'每种文件类型读取一次

WdocName=Dir(WdocFolder&"*."&FileTryp(i))'获得文件夹下的第一个文档文件名

Do While WdocName<>""

If WdocName=""Then Exit Do

Set Wdoc=WordAppl.Documents.Open(Wdoc-Folder&""&WdocName) '读取文件夹下的所有表单文档

'向Excel表导入数据:

R=Range("A"&Rows.Count).End(xlUp).Row+1

For j=1 To Wdoc.ContentControls.Count

If R=2 Then Cells(R-1,j)=Wdoc.Content-Controls(j).Title

Cells (R,j) =Wdoc.ContentControls(j).Range.Text

Next j

Wdoc.Close

WdocName=Dir()'移到下一个表单

Loop

Next i

WordAppl.Quit

End Sub

点击“工具”菜单,点击“引用”,打开“引用”窗口。在“可使用的引用”列表中勾选“Microsoft Word 15.0 Object Lybrary”项[2]。

运行“读取数据”宏代码,选择表单所在的文件夹,该文件夹下的所有表单数据就逐行导入到Excel表中,如图9所示。

图9 从W ord表单导入的数据

4 结束语

通过Word、VBA、Excel的结合,使表单的构建、填写、数据的收集及分析变得更加便利,容易在无纸化办公进行推广。

猜你喜欢
表单选项卡控件
移动App表单组件体验设计
电子表单系统应用分析
基于.net的用户定义验证控件的应用分析
PPT中巧作形意信息图
巧用Word替换纠正角标跑偏
关于.net控件数组的探讨
浅谈网页制作中表单的教学
禁用一切 优化无限
使用智能表单提高工作效率
基于嵌入式MINIGUI控件子类化技术的深入研究与应用