Đối với cách 1:Đã có ai nghiên cứu vụ này chưa nhỉ (một mình mình làm thì cảm giác không chắc ăn lắm)
--------------
Phát hiện ra mấy chuyện:
- Hình như là chẳng cần đổi rổng thành "+" gì ráo cũng được
- Hình như là tiếng Việt cũng chơi được luôn là không cần phải có hàm convert (UTF8)
Tôi viết sơ qua mấy code:
1> Tạo mã QR, dùng Shape
Cách dùng: Gõ gì đó vào cell A1 rồi chạy sub MainMã:Private Function pic_QR(ByVal QR_Value As String, ByVal Target As Range, Optional ByVal Size As Long = 150) As Shape Dim sURL As String On Error Resume Next If Len(QR_Value) Then sURL = "https://chart.googleapis.com/chart?chs=" & Size & "x" & Size & "&cht=qr&chl=" sURL = sURL & QR_Value Set pic_QR = Target.Parent.Shapes.AddPicture(sURL, True, True, Target.Left, Target.Top, Size, Size) End If End Function Sub Main() Dim shp As Shape Set shp = pic_QR(Range("A1").Value, ActiveCell) End Sub
2> Tạo mã QR, dùng Comment
Cách dùng: Gõ công thức =cmt_QR(A1) vào cell nào đó (với A1 là dữ liệu đầu vào)Mã:Function cmt_QR(ByVal QR_Value As String, Optional ByVal cel As Range, Optional ByVal Size As Long = 150) As String Dim sURL As String, mRng As Range, cmt As Comment On Error Resume Next Application.Volatile If cel Is Nothing Then Set cel = Application.ThisCell cel(1, 1).Comment.Delete If Len(QR_Value) Then sURL = "https://chart.googleapis.com/chart?chs=" & Size & "x" & Size & "&cht=qr&chl=" sURL = sURL & QR_Value If cel(1, 1).Comment Is Nothing Then cel(1, 1).AddComment cel(1, 1).Comment.text vbLf Set mRng = cel(1, 1).MergeArea If mRng Is Nothing Then Set mRng = cel(1, 1) Set cmt = mRng(1, 1).Comment cmt.Visible = True With cmt.Shape .LockAspectRatio = msoFalse .Placement = xlMoveAndSize .Shadow.Visible = msoFalse .Line.Visible = msoFalse .AutoShapeType = msoShapeRectangle .Left = mRng.Left: .Top = mRng.Top .Width = mRng.Width: .Height = mRng.Height .Fill.UserPicture sURL End With End If End Function
------------------------------
Các bạn test giúp tôi: Tạo mã bằng 2 code trên rồi dùng các chương trình quét mã QR trên smartphone scan thử xem ra kết quả đúng không nha
Thầy cho em hỏi để giảm bớt khoảng trắng xung quanh phần QR code màu đen thì làm thế nào, vì em đặt vào ô excell nó bao trùm phần border. Em phải vào format và crop phần trắng đi.