VBA 二维码方案

用Rust写个 QR.exe软件, 生成二维码格式: 

QR.exe /S3 /L11 /O"C:\QRCODE11\1.jpg" /T"123"

  

123 是原始字符.

 

 

 

EXCEL VBA插入二维码图片.

Function MK_QR(Enc_Dat, ECL, SIZ, sheetname As String)
    Dim F_Name As String
    Dim path As String
    F_Name = "[" & ActiveWorkbook.name & "]" & ActiveSheet.name & "!" & ActiveCell.Address
    path = ThisWorkbook.path & "\QR.exe"
    Point01 = Shell("""" & path & Chr(34) & " /S" & SIZ & " /L" & ECL + 1 & " /O""" & ThisWorkbook.path & "\" & F_Name & ".jpg"" /T""" & Enc_Dat & """")
    Point02 = OpenProcess(&H100000, 1, Point01)
    Point03 = WaitForSingleObject(Point02, &HFFFFFFFF)
    Point03 = CloseHandle(Point02)
    Point01 = Empty
    Point02 = Empty
    Point03 = Empty
    
    'ActiveSheet.OLEObjects.Add(Filename:=ThisWorkbook.path & "\" & F_Name & ".bmp", Link:=False, DisplayAsIcon:=False).Select  '直接把图片插入在文件里头.
    
    If sheetname = "半成品" Or sheetname = "原料包材" Then
        Sheets(sheetname).Cells(1, 5).Select
        
        With ActiveSheet.Pictures.Insert(ThisWorkbook.path & "\" & F_Name & ".jpg")
            .Left = ActiveCell.Left
            .Top = ActiveCell.Top
            .ShapeRange.ScaleWidth 0.9280913174, msoFalse, msoScaleFromTopLeft
            .ShapeRange.ScaleHeight 0.9280913174, msoFalse, msoScaleFromTopLeft
        End With
    Else
        Sheets(sheetname).Cells(2, 5).Select
    
        With ActiveSheet.Pictures.Insert(ThisWorkbook.path & "\" & F_Name & ".jpg")
            .Left = ActiveCell.Left
            .Top = ActiveCell.Top
            .ShapeRange.ScaleWidth 0.9280913174, msoFalse, msoScaleFromTopLeft
            .ShapeRange.ScaleHeight 0.9280913174, msoFalse, msoScaleFromTopLeft
        End With
    End If
    Kill (ThisWorkbook.path & "\" & F_Name & ".jpg")     '将已经生成的二维码图像删除
End Function

  

 可以把 .jpg换成 .tmp

posted @ 2025-09-01 13:34  CrossPython  阅读(19)  评论(0)    收藏  举报