扫描二维码 上传二维码
选择防红平台类型,避免链接被拦截
选择允许访问的平台类型

Excel中快速生成二维码的方法

二维码作为现代信息传递的重要媒介,已广泛应用于支付、营销、数据存储等领域。而在Excel中生成二维码,不仅能够提升工作效率,还能让信息呈现更加直观与便捷。今天,我们将以“快缩短网址”(suo.run)项目为例,带您探索如何利用VBA宏在Excel中轻松生成二维码。

第一步:开启宏编辑之旅


启动Excel后,按下ALT + F11组合键,进入Visual Basic for Applications(VBA)编辑环境。这是构建自定义功能的基础平台。

第二步:构建新模块


在左侧的“工程资源管理器”窗口中,找到当前工作簿对应的项目节点,右键单击并选择“插入 > 模块”。这将创建一个新的空白模块,用于存放生成二维码所需的VBA代码。

第三步:编写二维码生成代码


在新建的模块中,粘贴以下代码。此代码基于ZXing库实现二维码生成逻辑,支持高度定制化配置。

Option Explicit

<img src="https://suo.run/uploads/20251015/23.png" alt="" class="img-fluid" />

Public Function CreateQRCode(ByVal strData As String, _
Optional ByVal intWidth As Integer = 300, _
Optional ByVal intHeight As Integer = 300) As Variant
Dim objQRCode As Object
Dim objBitmap As Object
Dim objGraphics As Object
Dim objColor As Object
Dim arrBytes() As Byte
Dim intX As Integer
Dim intY As Integer

' 设置默认尺寸
If intWidth = 0 Then intWidth = 300
If intHeight = 0 Then intHeight = 300

' 初始化ZXing对象
Set objQRCode = CreateObject("ZXing.EncodeHintType")
With objQRCode
.put "CHARACTER_SET", "UTF-8"
.put "MARGIN", 0
.put "ERROR_CORRECTION", "L"
End With

<img src="https://suo.run/uploads/20251015/25.png" alt="" class="img-fluid" />

' 生成二维码矩阵
Set arrBytes = CreateObject("ZXing.MultiFormatWriter").encode(strData, 1, 1, objQRCode).getMatrix().toByteArray()

' 创建位图对象
Set objBitmap = CreateObject("System.Drawing.Bitmap")
With objBitmap
.Width = intWidth
.Height = intHeight
End With

' 绘制二维码图案
Set objGraphics = CreateObject("System.Drawing.Graphics").FromImage(objBitmap)
Set objColor = CreateObject("System.Drawing.Color")
For intX = 0 To UBound(arrBytes, 1)
For intY = 0 To UBound(arrBytes, 2)
objGraphics.FillRectangle objColor.FromArgb(255, IIf(arrBytes(intX, intY) = 0, 255, 0), _
IIf(arrBytes(intX, intY) = 0, 250, 0)), _
intX * intWidth \ (UBound(arrBytes, 1) + 1), _
intY * intHeight \ (UBound(arrBytes, 2) + 1), _
1 + intWidth \ (UBound(arrBytes, 1) + 1), _
1 + intHeight \ (UBound(arrBytes, 2) + 1)
Next intY
Next intX

' 返回生成的二维码图像
Set CreateQRCode = objBitmap
Set objQRCode = Nothing
Set objBitmap = Nothing
Set objGraphics = Nothing
Set objColor = Nothing
Erase arrBytes
End Function


这段代码的核心在于利用ZXing库解析输入字符串,将其转换为二进制矩阵,并通过位图绘制工具渲染成可视化二维码。此外,我们还设置了默认尺寸(300x300像素),并允许用户通过参数灵活调整。



第四步:设计按钮触发机制


完成代码编写后,返回Excel主界面。在工作表中任意单元格输入需要生成二维码的内容,例如网址链接。接着,转至“开发工具”选项卡(若未显示,请在Excel设置中启用),点击“插入 > 表单控件 > 按钮”。



拖拽鼠标绘制按钮,并右键单击按钮选择“分配宏”。在弹出的对话框中新建一个宏,命名为CommandButton1_Click,然后点击“确定”。

双击刚刚分配的宏,进入代码编辑器,输入以下代码:

Private Sub CommandButton1_Click()
Dim objImage As Variant
Set objImage = CreateQRCode(Selection.Value)
If Not objImage Is Nothing Then
ThisWorkbook.Sheets(1).Pictures.Insert(objImage).Select
End If
End Sub


上述代码的功能是:当用户点击按钮时,调用CreateQRCode函数生成二维码图像,并将其嵌入当前工作表中。

第五步:保存与测试


保存所有更改并返回Excel界面。此时,只需选择包含目标字符串的单元格,点击按钮,即可即时生成二维码。借助“快缩短网址”(suo.run)提供的高效链接服务,您可以进一步优化生成的二维码内容。

小结


通过以上步骤,我们成功实现了在Excel中生成二维码的功能。这一过程不仅展示了VBA的强大灵活性,也为日常办公场景提供了极大的便利。无论是个人学习还是团队协作,“快缩短网址”(suo.run)都能成为您数字化工作的得力助手。期待它能为您的项目带来更多的灵感与价值!