วันนี้จะมาแนะนำการสร้าง QR CODE ไว้สำหรับใช้งานกันนะครับ ปกติแล้วการสร้าง QR CODE สามารถทำได้อีกวิธีหนึ่งคือ
Create ผ่านหน้าเว็บ แต่เงื่อนไขคือ เครื่องนั้นต้องมี Internet แต่สำหรับเครื่อง User ทั่วไปอาจไม่มี Internet ให้ใช้ เราจึงจะสร้าง QR Code จาก Excel กัน และที่สำคัญมันใช้งานแบบ Offline
สิ่งที่เราต้องมีในเครื่องคือ ตัว ActiveX Controls ใช้สองตัวคือ
1. StrokeScribe.ocx
2. StrokeScribeClass.dll
CODE ที่ใช้นะครบ ตัวแรกเป็นตัว Create QR CODE รับตัวแปรเป็น String นะครับ
Code:
Sub GenQRCode(data As String)Dim wsh As Worksheet
Set wsh = Application.ActiveSheet
Dim shp As Shape
For Each shp In wsh.Shapes
If shp.Type = msoPicture And InStr(shp.Name, "BarcodePicture") > 0 Then
shp.Delete
End If
Next
Dim ss As StrokeScribeClass
Set ss = CreateObject("STROKESCRIBE.StrokeScribeClass.1")
ss.Alphabet = QRCODE
row = 1
If Len(data) = 0 Then Exit Sub
pict_path = "X:\33.GM\Print QR Code\QR CODE\" + data + ".wmf" 'ผมเก็บรูปไว้ที่นี่
ss.Text = data
rc = ss.SavePicture(pict_path, WMF, 500, 500)
End Sub
Code ชุดที่ 2 ใช้ในปุ่มกดนะครับ Concept คือ วน Loop Print ถ้าไม่มี QR CODE จะสั่งให้ Create ใหม่
Code:
Private Sub btnPrint_Click()Range("A7").Activate
Dim row As Integer
row = 7
Do While Range("C" & row).Value <> ""
If Range("A" & row).Value > 0 Then
Sheet4.Range("J6").Value = Sheet1.Range("C" & row).Value
Sheet4.Range("J4").Value = Sheet1.Range("E" & row).Value
Sheet4.Range("O6").Value = Sheet1.Range("F" & row).Value
Application.ScreenUpdating = False
If Range("A" & row).Value > 0 Then Call GetImage(row)
Sheet4.Shapes("QR_Code").Fill.UserPicture "X:\33.GM\Print QR Code\QR CODE\" & Sheet1.Range("C" & row).Value & ".wmf"
Sheet4.PrintOut 1, 1, Range("A" & row).Value, False
End If
row = row + 1
Loop
If Range("G1") = 0 Then
MsgBox "ไม่พบข้อมูลที่ต้องการ Print กรุณาเลือกข้อมูลก่อนครับ"
Exit Sub
End If
End Sub
ตามที่ผมนำมาใช้งานนั้น ผมจะใช้งานกับเครื่อง Print ความร้อนครับ ใช้ Print กับ Sticker ที่เป็นหางหนู ติดที่ตัวชิ้นงานจำพวกอัญมณีครับเพื่อแสดงราคา เพื่อนๆลองนำไปใช้ดูนะครับ อย่าลืม Add Reference ก่อนนะครับ