条形码的应用越来越普及,只是目前的应用中还是以一维居多,比如目前超市收银台都是刷一维码的。由于一维码本身的编码机制所限,一维码所能表示的信息也是有限的,特别是信息多了以后,很难识别。因此二维码应用而生,根据不同的编码形式,可以保存不同量的信息,但总体来说,二维码比一维码能够存储的信息量大多了。并且最重要的是二维码还具有纠错功能,也就是说即便二维码因意外有部分损坏,仍然有读出数据的可能。
    最近因为要用到二维码,网上搜了一下,有个别小软件能够实现二维码的生成,但由于是EXE格式,无法修改,所以不实用。然后就是想到一些二维码控件,搜到不少,但基本上都是收费的,并且也不知道效果怎样。
    终于找到一个QRmaker控件,使用也很简单,可以用于VB平台,当然VBA用也就没问题了。
 
     一、VB中调用QRmaker
    先“新建”一个“标准EXE”工程,在控件工具箱中要添加QRmaker控件,然后在Form上分别添加一个Textbox控件(我这里取的名称为txtInputData)和一个QRmaker控件。其中Textbox控件的属性可根据自己的喜好进行设置,QRmaker控件的AutoRedraw属性建议设置为“1-ArOn”,当然也可以在代码中直接控制。
    双击窗体,进入代码编辑界面,分别完成以下代码。
Private Sub Form_Load() 
        txtInputData.Text = "请单击此处,输入要生成二维码的文本" 
End Sub 

Private Sub txtInputData_Click() 
        txtInputData.Text = "" 
End Sub 

Private Sub txtInputData_Change() 
        QRmaker1.InputData = txtInputData.Text 
End Sub
    如果没有设置QRmaker的AutoRedraw属性,则txtInputData_Change事件中还需要添加“QRmaker1.Refresh”代码行,总的代码如下图所示。
    最后生成EXE,可以输入文字,可以看到已经可以生成二维码了,由于使用了txtInputData_Change()事件,所以在文本框中输入的文字,下方的二维码会实时的展现。
    
    至此VB中调用QRmaker生成二维码已经没什么问题了,其他细节部分可根据实际情况进行修改。
 
     二、VBA中调用QRmaker
    由于VBA的窗体环境和VB中的差不多,所以在VBA窗体中调用QRmaker就不再描述,这里主要说明一下如何在表格中引用QRmaker。
    第一步:单击Office按钮,在Excel选项中开启“开发工具”项,从而让“开发工具”选项卡显示出来。
    第二步,插入→其他控件,选择QRmaker。
    然后就是在合适的地方绘出QRmaker控件,这时会自动进入“设计模式”,单击“属性”可以展开控件的“属性”栏,可根据需要设置相关属性,和VB中的操作雷同。
 
    接下来与VB中不一样的地方就是如何在VBA代码中引用QRmaker控件了,这点和VB中有点小区别。
    添加“模块”,添加“过程”,输入代码。
Public Sub QRCodeTest() 
        '定义QRString变量,存储要生成二维码的字符串 
        Dim QRString As String 
        '给QRString赋值,根据实际情况赋值 
        QRString = Sheet1.Range("E14") & Sheet1.Range("F14") & ";" & Sheet1.Range("E15") & Sheet1.Range("F15") & ";" & Sheet1.Range("E16") & Sheet1.Range("F16") & "_" & Sheet1.Range("G16") & "_" & Sheet1.Range("F17") & "_" & Sheet1.Range("G17") 
        Sheet1.Select 
        '设置QRmaker的AutoRedraw属性为ArOn 
        Sheet1.QRmaker1.AutoRedraw = ArOn 
        '将字符串传递给QRmaker控件 
        Sheet1.QRmaker1.InputData = QRString 
        '刷新QRmaker的内容,如果AutoRedraw属性为On,则无需此句 
        'Sheet1.QRmaker1.Refresh 
End Sub 
    然后就可以在Excel表格中生成二维码了,根据实际情况,在填写相关数据后,执行上面的语句就可以了,其他的工作该咋的就咋的吧。
    附上QRmaker控件的下载。
 
    另:这里由于是利用QRmaker控件来生成二维码,所以并没有技术含量。而就二维码本身,包含的知识点还是相当多的,目前还没去了解过编辑技术层面的内容。期待有达人们能够放出类似控件的源代码,从而让更多的人了解并掌握二维码的知识。
 
    PS:现在的二维码真是无处不在,前段时间移动赠送给我的电影票都是以二维码的形式发送的。现在火车票上也加上二维码了,且现在很多手机都支持二维码识别了。一个新的读码时代即将到来。