在MS Office中制作二维码及应用举例B
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在MS Office中制作二维码及应用举例
周友胜
摘要:本文就以常用的OFFICE2003为基础进行QR二维码设计制件,仅需简单安装一控件即可,适合以Windows+MS Office(2003、2007、2010、2013,32位)的办公环境使用,无需安装额外的任何软件。
关键字:QR二维码、QRmaker.ocx控件、邮件合并
本交所讨论的为QR二维码,以“QRmaker.ocx”控件为核心制作生成二维码,此控件为日本denso公司制作,现在可网上下载无限制功能使用。
QR二维码是由日本丰田子公司Denso Wave于1994年发明并开始使用的一种矩阵二维码符号。QR码不仅信息容量大、可靠性高、成本低,还可表示汉字及图像等多种文字信息、其保密防伪性强而且使用非常方便。
二维码和手机摄像头的配合将产生多种多样的应用,比如我们可以在自己的名片上印上二维码,别人只需用安装二维码识别软件的摄像手机轻松一拍,名片上的各种资料就全部输入手机;在学校日常工作中,我们也可以制作有二维码的各种证件资料,如录取通知书、毕业证书、借书证、学籍登记表等。
虽然现在有不少制作二维码并能批量打印的软件,但需安装较复杂和收费软件,本文就以常用的OFFICE2003为基础进行QR二维码设计制件,仅需简单安装一控件即可,适合以Windows+ MS Office(2003、2007、2010、2013,32位)的办公环境使用,无需安装额外的任何软件。通过网络搜索,发现此类的资料非常少和零碎,本文就以完整的实例进行相关的探讨和尝试。
在进行制作前,首先要下载QRmaker.ocx控件,一共有五个文件“QRmaker.ocx、vssver.scc、QRmaker.lic、QRmaker.oca、QRmaker.tlb”,把上列文件复制到C:\WINDOWS\system32文件夹下面,64位系统复制到C:\Windows\SysWOW64文件夹内。Windows XP系统在命令窗口执行“regsvr32 QRmaker.ocx ”注册控件便可使用。在windows 7\8要以管理员身份运行“CMD.EXE”命令窗口,执行“regsvr32 QRmaker.ocx ”注册命令方可正常注册。经测试控件可在windows 98\2000\xp\7\8(32和64位)和office2000\2003\2007\2010\2013(仅32位)中正常使用,因QRmaker.ocx是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 = edRange.Rows.Count '表中已用数据的行数
j = edRange.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