Bạn đang cần tạo QR Code để mã hóa các thông tin dựa vào dữ liệu từ bảng tính Excel?
Trong Excel, có khá nhiều công cụ và Add In giúp bạn tạo nhanh mã QR đẹp và chuẩn. Nhưng nếu bạn vẫn chưa tìm được công cụ phù hợp. Mình có cách để tạo QR code dựa theo một API của Google. Bạn chỉ cần tạo thêm vài dòng Code VBA là có thể sử dụng được rồi. Hãy tham khảo cách mình làm nha!
Google Chart API tạo QR Code
Trước tiên, cùng mình phân tích đoạn đường dẫn để tạo 1 QR Code của API.
Bạn hãy sao chép đoạn đường dẫn dưới đây và chạy trong trình duyệt Web để xem kết quả nhé.
https://chart.googleapis.com/chart?chs=250x250&cht=qr&chl=noi-dung-qr-code
Code language: VB.NET (vbnet)
Tham khảo thêm: Google Chart API
Bây giờ, hãy thử sử dụng điện thoại để quét mã QR trên để xem nội dung là gì? Và cùng mình phân tích các thông số trong đường dẫn API như sau:
- Kết quả trả về sẽ là một QR Code dạng hình ảnh (png).
- Có kích thước rộng 250px và cao 250px.
- Nội dung QR Code thể hiện đó là “noi-dung-qr-code”.
Vậy khi sử dụng trong Excel, chỉ cần tùy chỉnh lại 2 thông số kể trên thì bạn sẽ tạo được một mã QR Code rồi.
Việc tiếp theo cần thực hiện đó là nhúng QR Code vào Excel.
Nhúng QR Code từ API vào Excel
Để nhúng QR Code vào Excel chắc chắn bạn sẽ cần sử dụng VBA Excel rồi.
Macro dưới đây được tạo bằng cách Record Macro lại thứ tự thao tác: Chọn Insert > Picture. Và sau đó thay thế đoạn đường dẫn hình ảnh bằng đoạn API.
Sub Macro1()
ActiveSheet.Pictures.Insert( _
"https://chart.googleapis.com/chart?chs=250x250&cht=qr&chl=noi-dung-qr-code").Select
Selection.ShapeRange.ScaleWidth 0.8, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 0.8, msoFalse, msoScaleFromTopLeft
End Sub
Code language: VB.NET (vbnet)
**Nếu, bạn chưa biết cách tạo Record Macro, hãy đọc thêm bài viết này.
Tiếp theo, bạn hãy chạy Macro và xem kết quả.
Như vậy, bạn đã tạo được QR Code bằng VBA Excel và API Google rồi. Tiếp theo, bạn sẽ tìm hiểu thêm để tùy chỉnh kích thước và nội dung QR.
Tùy chỉnh QR Code bằng VBA Excel
Để tùy chỉnh QR Code từ API, bạn có thể tùy chỉnh cả kích thước và nội dung của mã. Tham khảo cách mình tùy biến 2 thông tin trên bằng hàm VBA Excel như sau.
Sub qrcode(qrcode As String)
widthQR = 250
heightQR = 250
urlAPI = "https://chart.googleapis.com/chart?"
sizeQR = "chs=" & widthQR & "x" & heightQR
contetnQR = "&cht=qr&chl=" & qrcode
finalQR = urlAPI & sizeQR & contetnQR
ActiveSheet.Pictures.Insert(finalQR).Select
Selection.ShapeRange.ScaleWidth 0.8, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 0.8, msoFalse, msoScaleFromTopLeft
End Sub
Code language: VB.NET (vbnet)
Hàm trên, bạn hãy đặt nó vào trong Module. Và khi tạo kích thước, bạn nên đặt WidthQR và HeightQR bằng nhau.
Sau đó, bạn cần tạo thêm một hàm có chức năng nhận dữ liệu từ bảng tính Excel và truyền đến hàm qrcode kể trên.
Dưới đây, mình đã tạo một hàm bắt sự kiện chỉ khi DoubleClick vào 1 ô trong cột A thì mới tạo QR Code.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("A:A")) Is Nothing Then
qrcode (Target.Value)
End If
End Sub
Code language: VB.NET (vbnet)
**Bạn hãy tham khảo thêm cách tạo các sự kiện của Worksheets trong VBA.
Bây giờ, bạn hãy tạo nội dung bất kỳ tại một ô trong cột A. Double Click vào ô đó thì tự động QR Code sẽ được tạo.
Kết luận
Như vậy, trong bài viết này mình đã giới thiệu đến bạn API của Google để tạo QR Code. Và ứng dụng nó để tạo mã QR Code trong Excel một cách nhanh gọn. Bạn hãy thử áp dụng để xem cách tạo QR Code này có phù hợp với ý của bạn không nhé.
Chúc bạn vui!