Excel
使用 VBA 创建条形码对象

 Standard 或更高

使用 VBA 和自动处理条形码 Excel

您可以使用 VisualBasic for Applications (VBA) 解决 Excel 中的许多问题。 在此,我们将向您展示如何使用 VBA 嵌入、使用和删除 ActiveBarcode 控件:

将 ActiveBarcode 控件嵌入工作表:
在此示例中,条形码控件将被置于单元格的正上方。这样,条形码看起来就像是在单元格内。

首先,我们读取单元格的大小:

CurrentCell = "C3"
MyHeight = Range(CurrentCell).Height
MyWidth = Range(CurrentCell).Width
MyTop = Range(CurrentCell).Top
MyLeft = Range(CurrentCell).Left
请注意,单元格应有一个最小尺寸,以便条形码可以放入其中。如果单元格太小,将显示 Size 错误。因此,我们将单元格的高度调整为 30 像素:
' Enlarge the cell height to 30 pixels
Range(CurrentCell).RowHeight = 30
以下函数将在单元格的正上方创建条形码控件:
ActiveSheet.OLEObjects.Add(ClassType:="ACTIVEBARCODE.BarcodeCtrl.1", Link:=False, _
 DisplayAsIcon:=False, Width:=MyWidth , Height:=MyHeight, Top:=MyTop + 2,_
 Left:=MyLeft + 4).Select
您可以将条形码对象与单元格直接链接:
ActiveSheet.OLEObjects(MyBarcode).LinkedCell = "B7"
为了便于访问控件,我们将控件名称存储在变量 MyBarcode 中:
MyBarcode = ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Name
现在,您可以随意使用条形码对象的 属性 方法
' set properties
ActiveSheet.OLEObjects(MyBarcode).Object.Font.Size = 8
ActiveSheet.OLEObjects(MyBarcode).Object.Type = 14 ' Code 128
ActiveSheet.OLEObjects(MyBarcode).Object.Text = Range("C3")
如果不再需要该控件,可以将其从工作表中删除:
ActiveSheet.OLEObjects(MyBarcode).Delete
提示:如果需要 Windows 在宏中处理即将发生的事件(通常称为 KeepWindowsAlive),您可以使用以下 VBA 函数强制进行处理:
DoEvents
这可能是必要的,例如,如果控件必须重新绘制。