在MS Office中制作二维码及应用举例
周友胜
摘要:本文就以常用的OFFICE2003为基础进行QR二维码设计制件,仅需简单安装一控件即可,适合以Windows+MS Office(2003、2007、2010、2013,32位)的办公环境使用,无需安装额外的任何软件。
关键字:QR二维码、控件、邮件合并
本交所讨论的为QR二维码,以“”控件为核心制作生成二维码,此控件为日本denso公司制作,现在可网上下载无限制功能使用。
QR二维码是由日本丰田子公司Denso Wave于1994年发明并开始使用的一种矩阵二维码符号。QR码不仅信息容量大、可靠性高、成本低,还可表示汉字及图像等多种文字信息、其保密防伪性强而且使用非常方便。
二维码和手机摄像头的配合将产生多种多样的应用,比如我们可以在自己的名片上印上二维码,别人只需用安装二维码识别软件的摄像手机轻松一拍,名片上的各种资料就全部输入手机;在学校日常工作中,我们也可以制作有二维码的各种证件资料,如录取通知书、毕业证书、借书证、学籍登记表等。
虽然现在有不少制作二维码并能批量打印的软件,但需安装较复杂和收费软件,本文就以常用的OFFICE2003为基础进行QR二维码设计制件,仅需简单安装一控件即可,适合以Windows+ MS Office(2003、2007、2010、2013,32位)的办公环境使用,无需安装额外的任何软件。通过网络搜索,发现此类的资料非常少和零碎,本文就以完整的实例进行相关的探讨和尝试。
在进行制作前,首先要下载控件,一共有五个文件“、vssver.scc、QRmaker.lic、a、QRmaker.tlb”,把上列文件复制到C:\WINDOWS\system32文件夹下面,64位系统复制到C:\Windows\SysWOW64文件夹内。Windows XP系统在命令窗口执行“ ”注册控件便可使用。在windows 7\8要以管理员身份运行“CMD.EXE”命令窗口,执行“ ”注册命令方可正常注册。经测试控件可在windows 98\2000\xp\7\8(32和64位)和office2000\2003\2007\2010\2013(仅32位)中正常使用,因是32位控件,只能在32位软件中调用。本文以windows XP和Office2003环境进行应用举例,所有代码均可在后继新版本软件中运行。例子中所出现的姓名、证件号、单位均为虚拟数据。
一、在PowerPoint 中制作生成二维码小工具
首先运行PowerPoint,打开“工具→宏→安全性”,把安全级设为低。其次,打开“视图→工具栏→控件工具箱”,在“其它控件”中到“QRMaker Control”,点后鼠标会变成十字,在空白区域画一个二维码控
件。再在控件工具箱添加一个文本框和两个命令按钮。选择文本框(TextBox),打开属性面板,把文本框(TextBox)的MultiLine 的值改为True,设置文本框为多行文本显示;再打ScrollBars的值改为fmscrollBarsVertical,设置文本框具有垂直滚动条。把命令按钮1(CommandButton1)的Caption属性修改为“显示二维码”,把命令按钮2(CommandButton2)的Caption属性修改为“二维码保存为图片”。布局如图1
图1
双击命令按钮1(CommandButton1),打开VBA编辑器,添加以下代码。Private Sub CommandButton1_Click()
Dim i As Integer
Dim n As String
n = TextBox1.Text
With QRmaker1
.ModelNo = 2 '设置二维码类型
.CellPitch = 10 '设置二维码每个单元DPI
.CellUnit = 203 '设置打印DPI
.QuietZone = 0
.Refresh
.AutoRedraw = ArOn '启用QRmaker的自动重画属性
.InputData = n '将TextBox1的值传递给QRmaker1输出
End With
End Sub
双击命令按钮2(CommandButton2),打开VBA编辑器,添加以下代码。Private Sub CommandButton2_Click()
Dim x, m, n As String
m = "请输入保存图片的文件名:"
n = InputBox(m, "输入文件名", "请输入文件名")
x = TextBox1.Text
With QRmaker1
.ModelNo = 2
.CellPitch = 10
.CellUnit = 203
.QuietZone = 0
.Refresh
.AutoRedraw = ArOn
.InputData = x
.CreateQrMetaFile 1, ActivePresentation.Path & "/" & n & ".bmp", 2
End With
End Sub
返回POWERPOINT窗口,保存PPT文件,播放幻灯片,在文本框输入内容,点“显示二维码”按钮,QRMaker控件就显示对应的二维码图像;点“二维码保存为图片”按钮,QRMaker控件就在当前文件所在文件夹生成一个BMP格式的二维码图片。
二、在EXCEL中批量生成二维码图片
本例以学生学籍信息表为演示,工作簿Sheet2表为学生信息资料,Sheet1表为操作窗口。参照前面在POWERPOINT添加控件的方法,在SHEET1表中添加一个“QRMaker Control”控件,一个命令按钮,同时在“工具→宏→安全性”,把安全级设为低。如图2、图3:
图2 (SHEET1表)图3(SHEET2表)本例中,AI列为需生成二维码的数据,数据是用公式把前面某些列合并在一起的文本,内容为姓名、身份证号码、性别等。
让控件处于设计模式,双击命令按钮,输入以下代码:
Private Sub CommandButton1_Click()
Dim i As Integer, j As Integer, k As Integer
Dim nm As String
i = Sheet2.UsedRange.Rows.Count '表中已用数据的行数
j = Sheet2.UsedRange.Columns.Count '表中已用数据的列数
With QRmaker1
.ModelNo = 2
.CellPitch = 5
.CellUnit = 203
.QuietZone = 0
.Refresh
End With
For k = 2 To i
nm = CStr(Sheet2.Range("A" & k).Value) + "_" + Sheet2.Range("D" & k).Value + Sheet2.Range("c" &
k).Value '生成的二维码图片文件名由表中的序号(A列)+身份证号码(D列)+姓名(C列)组成,保证文件名的唯一性
Sheet1.QRmaker1.AutoRedraw = ArOn '启用QRmaker的自动重画属性
Sheet1.QRmaker1.InputData = Sheet2.Range("AI" & k).Value '将AI列单元格的值传递给QRmaker1输出
Sheet1.QRmaker1.CreateQrMetaFile 1, ThisWorkbook.Path & "/" & nm & ".bmp", 2 '生成二维码图片,保存在当前文件夹
Next k
End Sub
返回EXCEL窗口中,保存文件,回到SHEET1窗,关闭控件设计模式,点击“生成二维码”按钮,即可在当前文件夹生成表中所有记录的二维码图片。
三、用邮件合并方式在WORD中批量插入在EXCEL中生成的二维码图片
Word的邮件合并功能其基本思想就是定义一个Word模板,再选择一个数据表格,然后将数据表格中的每条数据填入模板中形成一个页面,并将根据所有数据生成的页面组合起来形成一个新的文档(输出到新Word文档或者打印机),这就是我们所需要的结果。
一般情况下,使用邮件合并都不会很费事,因为Word提供的邮件合并向导和邮件合并工具栏已经让操作非常简单易行了。但是,当合并文件要加入不同的图片,图片怎么合并进去呢?这个时候就得用“域”来往Word中插入图片。这里,会用到一个叫"INCLUDEPICTURE"的Word域。可使用Ctrl+F9来插入域(此时会自动插入表示域的一对大括号,即插入域的时候,包含域代码的那一对大括号并不是手工输入的),并在其中填写域代码。在WORD2003也可通过菜单“插入→域”来完成操作,如图4:
图4
在域名中到“INCLUDEPICTURE”,在域属性的“文件名或URL”先随便输入一个文件名如“PIC”,然后按“确定”,就会在WORD中插入域,按Shift+F9可看到域代码是这样{ INCLUDEPICTURE "PIC" \* MERGEFORMAT }。
以上例的EXCEL表格为数据源(表格需有生成的二维码的图片名称数据,如图5),
图5(合并数据源样式)
在WORD中制作合并邮件模板。打开“视图→工具栏→邮件合并”工具栏,点击邮件合并工具栏的“打开数据源”按钮,添加所需的EXCEL文件为数据源。然后光标定位需显示数据的地方,点“插入域”按钮,插入相应的域;重复前一步操作,即可制作出所需的模板。为方便制作和减少代码,EXCEL文件、二维码图片和WORD文件需保存在同一文件夹内。如图6、图7:
excel口内打 或者x
图6(插入合并域) 图7(合并数据结果)
批量插入图片的操作。通过菜单“插入→域”插入域{ INCLUDEPICTURE "PIC" \* MERGEFORMAT },见图4 ,删除“PIC ”(不包括引号),光标定位在双引号里面,在邮件合并工具栏“插入域”,到“图片名称”插入该域,按Shift+F9可看到代码{ INCLUDEPICTURE "{ MERGEFIELD "图片名称"}" \* MERGEFORMAT },再Shift+F9可显示插入的二维码图片,若图片显示不正常,选定该域按F9刷新就可以正确显示。根据需要适当调整图片大小即可。
点击邮件合并工具栏上的“合并到新文档”按钮,生成新的WORD 文件,此时所有的图片好像显示的都是第一个人的二维码图片,需全选这个Word 文档,然后按F9对所有域进行刷新。这时候图片应该都换成了正确的图片,如果没有——那就先把这个文档保存下来,关闭,再打开,全选,F9刷新即可。最后还有一点不得不说明,图片只有在应用“嵌入型”版式的时候才可以用于邮件合并。
至此,利用EXCEL 批量生成二维码图片,再在WORD 中通过邮件合并插入二维码图,制作带二维码的证书方法算完成了。
四、在WORD 利用“QRMaker Control ”控件生成二维码
上例在WORD 中插入二维码图片的方式适合生成多页文档批量连续打印使用,如录取通知之类。若要
打印证书,如学生评价手册等需逐本打印的资料,逐条信息打印较为合适,通过实际试验,这时用插入图片方式,通过邮件合并工具栏的“下一记录”按钮不能即时刷新和显示对应的图片,要保存文件,再打开文件刷新才能正确显示下一记录对应的图片,没有实用操作价值。但可以用“QRMaker Control ”控件和命令按钮配合使用,可解决即时更新和显示二维码的问题。下图8是小学生评价手册的学生信息页模板,带灰底纹的为合并域数据;图9是合并打印的输出结果。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论