随着定量方法在市场研究中日益受到重视,各种各样的数据分析软件在市场研究中得到了广泛而深入的应用。譬如数据录入软件pcEdit、专用统计分析软件SPSS、Statistics、SAS等在市场研究中从问卷设计、编码、录入到最后分析的整个过程,发挥了越来越大的作用。但应该看到的是,虽然大型的专业软件如SPSS有一整套的数据分析流程软件的支持,但由于价格(SPSS Data Entry价格3万多人民币)等诸多原因,在实际市场研究当中可能仅仅是利用其中某一个而已。而且事实上市场研究前期阶段的问卷设计普遍采用的是Office软件来做的,只有在收集完数据、录入数据后才把所有的数据导入到统计分析软件当中。因此,一个无法避免的问题就是还需要手工输入数据文件的模板,这样就增加了不必要的重复工作量,因为问卷设计当中的大多数问题选项已经反映出了问题的答案。
作为最常用的办公自动化软件之一,Microsoft Office软件尤其是其中的Excel表格处理软件,由于内嵌了丰富的数据输入、计算、分析、图表等功能,受到了人们的普遍欢迎。更重要的是,这套软件在自身基础(主要是VBA编程语言)上提供了二次开发的可能,例如Excel中自带的规划求解、数据分析等就是线性规划、统计分析的应用,而其他一些软件工具包(Crystal Ball、PDF转换)等也是在其基础上为方便使用者而定制的新功能。
基于此,本文在分析SPSS软件体系结构基础上利用Excel内涵的VBA技术,通过加载宏的使用编程实现SPSS数据文件模板的自动生成,从而减少上面所说的重复性工作,提高市场研究中数据处理的工作效率和工作质量。
一、SPSS软件的体系结构
面向对象、面向组件的编程目前是主流的编程技术,SPSS软件体系本身就是建立在面向对象、组件的基础之上的,其中SPSS类库和对象是支撑SPSS整个软件体系的基础。
(1)SPSS类库 类库是文件或文件中的组件,主要有两种类型(.tlb、.olb)的类库。扩展名为.tlb的类库可以作为单独的文件进行安装、扩展名为.olb的类库可以嵌入到对象库文件内部。SPSS提供了SPSS类库(spsswin.tlb)、SPSS转轴表类库(spssvt.tlb)、SPSS RTF类库(spssrtf.tlb)和SPSS图形编辑器OLD控制库(spssgctl.tlb)。 安装完SPSS以后,第一次运行它时SPSS类库会自动注册Windows注册数据库中,以后若有别的应用程序要使用SPSS类库中的对象便可以从中访问。
(2)SPSS对象
对象是具有各种数据分析功能的独立实体,可以通过程序进行控制。SPSS提供了数十个对象,包括简单的文本对象、图例对象和比较复杂的转轴表对象、交互图对象等,其中实现SPSS基本功能的对象包括Application对象、Options对象、Documents Collection对象、Data Document对象、Syntax Document对象、Draft Document对象、Chart对象、OutputItems Collection对象、Output Item对象和Map对象等。
图1是SPSS中对象的树形结构,位于最顶端的是Application对象,它代表SPSS自身,所有其他对象都在Application对象之下。第二层包括4个对象: Option对象:利用该对象可以为输出浏览器、图表和数据等设置选项。 Documents对象:提供数据编辑、语法文档窗口、输出浏览器和草稿文档窗口等4个窗口的属性和操作方法。
SPSS Info对象:提供SPSS的一些必要信息。
CS Application对象:提供与网络有关的对象操作。
二、VBA编程应用的主要步骤
VBA是建立在Microsoft Office中的标准语言,用于定制和扩展Office的功能。它采用了面向对象的编程技术,提供了访问Office应用程序的途径。以Excel中的VBA为例,最上层的对象是Application,其次是Range,Workbook,Sheets等,这些对象组成一个层次鲜明的对象体系,各有自己的属性和方法,熟悉这些属性和方法可大大加快二次开发的效率。限于篇幅,在此不探讨VBA的具体编程步骤,只简单介绍如何生成一个可直接在Excel菜单中应用的程序的主要三个步骤。
(1)在Excel主菜单中添加定制的菜单项 添加定制的菜单可直接加在主菜单中,也可加在工具等菜单中的下拉菜单中。如果是前者,主要在Workbook_Open、Workbook_BeforeClose中设定所需的菜单项;如果是后者,则主要是在Workbook中Workbook_AddinInstall、Workbook_AddinUninstall事件中对菜单项进行定制。
(2)设计用户窗体 用户窗体是用户和程序之间进行对话的界面。在进入Visual Basic编辑器后,从“插入”菜单中选择添加“用户窗体”,然后就可加入相应的控件,像在VB中一样进行编程。
(3)设计程序模块 在进入Visual Basic编辑器后,从“插入”菜单中选择添加“模块”,然后就可定义变量、添加相应的函数、过程等,对实际的应用进行编程实现。 三、基于VBA的SPSS数据文件模板的实现 在上面对SPSS、VBA的简要分析的基础上,作者在Excel环境中利用VBA的功能实现了对问卷设计中SPSS数据文件模板的加载,主要思路是:先用Excel设计好问卷中的各道题目,然后利用加载宏把问卷题目、编号、可选答案等数据保存为SPSS的语法文件(扩展名为sps),最后在Excel环境中打开SPSS应用程序,并执行保存好的语法文件自动生成SPSS的数据文件模板。实现结果如下: (1)用Excel设计问卷
在Excel表格中输入好问卷题目,包括:编号、问题、答案。图2是一个简单的问卷设计,包括问卷编号、性别、年龄、教育程度等题目。
(2)建立“SPSS数据文件模板”的加载宏
为方便应用操作,通过Excel中的加载宏来实现(具体实现可以参考有关加载宏的编写,在此略),界面如图3所示是在工具菜单上增加了一个菜单项“SPSS数据文件模板”,点击菜单项,弹出如图4所示的用户界面。
其中,问题题号输入问卷中问题的编号如id、a1、a2、a3,问题名称输入问卷中问题的题目如问卷编号、性别、年龄、教育程度,问题答案输入可选的答案代码和内容(如性别中的1和男、2和女),位数输入问题在SPSS中变量占据的位数,路径名称设置SPSS数据语法文件存放的位置,而问题类型设置为单选、多选(再细分为二分法和多选项法)、开放型三种类型。点击“继续输入”按扭把问卷题目的各项内容输入到各自对应的编辑框中。如果问卷所有题目输入完毕,点击“生成模板”,将会自动打开SPSS应用程序,同时生成对应的问卷数据文件模板,如图5所示。
四、结语
本文利用VBA技术在Excel环境中实现了市场研究中问卷设计后如何自动生成SPSS的数据文件模板,但由于问卷设计本身充满创造性,SPSS和VBA也在不断发展,文中构建的系统需要在实际中逐步完善,比如若问卷设计是在Word下做的,是否也可以同样来做等。但不管如何,本文主要目的是希望能对市场研究中的数据录入分析工作提供新的思路和方法,从而促进市场研究更好地发展。