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
浙公网安备 33010602011771号