條形碼的應(yīng)用越來越普及,,只是目前的應(yīng)用中還是以一維居多,,比如目前超市收銀臺(tái)都是刷一維碼的。由于一維碼本身的編碼機(jī)制所限,,一維碼所能表示的信息也是有限的,,特別是信息多了以后,很難識(shí)別,。因此二維碼應(yīng)用而生,,根據(jù)不同的編碼形式,可以保存不同量的信息,,但總體來說,,二維碼比一維碼能夠存儲(chǔ)的信息量大多了。并且最重要的是二維碼還具有糾錯(cuò)功能,,也就是說即便二維碼因意外有部分損壞,,仍然有讀出數(shù)據(jù)的可能。
最近因?yàn)橐玫蕉S碼,,網(wǎng)上搜了一下,,有個(gè)別小軟件能夠?qū)崿F(xiàn)二維碼的生成,但由于是EXE格式,,無法修改,,所以不實(shí)用。然后就是想到一些二維碼控件,,搜到不少,,但基本上都是收費(fèi)的,并且也不知道效果怎樣,。
終于找到一個(gè)QRmaker控件,,使用也很簡(jiǎn)單,可以用于VB平臺(tái),,當(dāng)然VBA用也就沒問題了,。
一,、VB中調(diào)用QRmaker
先“新建”一個(gè)“標(biāo)準(zhǔn)EXE”工程,在控件工具箱中要添加QRmaker控件,,然后在Form上分別添加一個(gè)Textbox控件(我這里取的名稱為txtInputData)和一個(gè)QRmaker控件,。其中Textbox控件的屬性可根據(jù)自己的喜好進(jìn)行設(shè)置,QRmaker控件的AutoRedraw屬性建議設(shè)置為“1-ArOn”,,當(dāng)然也可以在代碼中直接控制,。
雙擊窗體,進(jìn)入代碼編輯界面,,分別完成以下代碼,。
Private Sub Form_Load() txtInputData.Text = "請(qǐng)單擊此處,輸入要生成二維碼的文本" End Sub Private Sub txtInputData_Click() txtInputData.Text = "" End Sub Private Sub txtInputData_Change() QRmaker1.InputData = txtInputData.Text End Sub 如果沒有設(shè)置QRmaker的AutoRedraw屬性,,則txtInputData_Change事件中還需要添加“QRmaker1.Refresh”代碼行,,總的代碼如下圖所示。
最后生成EXE,,可以輸入文字,,可以看到已經(jīng)可以生成二維碼了,由于使用了txtInputData_Change()事件,,所以在文本框中輸入的文字,,下方的二維碼會(huì)實(shí)時(shí)的展現(xiàn)。
至此VB中調(diào)用QRmaker生成二維碼已經(jīng)沒什么問題了,,其他細(xì)節(jié)部分可根據(jù)實(shí)際情況進(jìn)行修改,。
二、VBA中調(diào)用QRmaker
由于VBA的窗體環(huán)境和VB中的差不多,,所以在VBA窗體中調(diào)用QRmaker就不再描述,,這里主要說明一下如何在表格中引用QRmaker。
第一步:?jiǎn)螕鬙ffice按鈕,,在Excel選項(xiàng)中開啟“開發(fā)工具”項(xiàng),,從而讓“開發(fā)工具”選項(xiàng)卡顯示出來,。
第二步,插入→其他控件,,選擇QRmaker,。
然后就是在合適的地方繪出QRmaker控件,這時(shí)會(huì)自動(dòng)進(jìn)入“設(shè)計(jì)模式”,,單擊“屬性”可以展開控件的“屬性”欄,,可根據(jù)需要設(shè)置相關(guān)屬性,和VB中的操作雷同,。
接下來與VB中不一樣的地方就是如何在VBA代碼中引用QRmaker控件了,這點(diǎn)和VB中有點(diǎn)小區(qū)別。
添加“模塊”,,添加“過程”,,輸入代碼。
Public Sub QRCodeTest() '定義QRString變量,,存儲(chǔ)要生成二維碼的字符串 Dim QRString As String '給QRString賦值,,根據(jù)實(shí)際情況賦值 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 '設(shè)置QRmaker的AutoRedraw屬性為ArOn Sheet1.QRmaker1.AutoRedraw = ArOn '將字符串傳遞給QRmaker控件 Sheet1.QRmaker1.InputData = QRString '刷新QRmaker的內(nèi)容,如果AutoRedraw屬性為On,,則無需此句 'Sheet1.QRmaker1.Refresh End Sub 然后就可以在Excel表格中生成二維碼了,,根據(jù)實(shí)際情況,在填寫相關(guān)數(shù)據(jù)后,,執(zhí)行上面的語句就可以了,,其他的工作該咋的就咋的吧。
附上QRmaker控件的下載,。
另:這里由于是利用QRmaker控件來生成二維碼,,所以并沒有技術(shù)含量。而就二維碼本身,,包含的知識(shí)點(diǎn)還是相當(dāng)多的,,目前還沒去了解過編輯技術(shù)層面的內(nèi)容。期待有達(dá)人們能夠放出類似控件的源代碼,,從而讓更多的人了解并掌握二維碼的知識(shí),。
PS:現(xiàn)在的二維碼真是無處不在,前段時(shí)間移動(dòng)贈(zèng)送給我的電影票都是以二維碼的形式發(fā)送的?,F(xiàn)在火車票上也加上二維碼了,,且現(xiàn)在很多手機(jī)都支持二維碼識(shí)別了。一個(gè)新的讀碼時(shí)代即將到來,。 本文出自 “越野蒼狼的博客” 博客,,請(qǐng)務(wù)必保留此出處http://windyli.blog.51cto.com/1300305/284574 |
|