Excel
Objetos de código de barras con VBA

 Standard o superior

Uso y automatización de códigos de barras con VBA en Excel

Puedes utilizar VisualBasic para Aplicaciones (VBA) para resolver muchas cosas en Excel. Aquí le mostraremos cómo incrustar, utilizar y eliminar el control ActiveBarcode con VBA:

Incrustación del Control ActiveBarcode en una Hoja:
En este ejemplo se colocará un control de código de barras directamente encima de una celda. Entonces parece que el código de barras estaría dentro de una celda.

Primero leemos el tamaño de las células:

CurrentCell = "C3"
MyHeight = Range(CurrentCell).Height
MyWidth = Range(CurrentCell).Width
MyTop = Range(CurrentCell).Top
MyLeft = Range(CurrentCell).Left
Tenga en cuenta que una celda debe tener un tamaño mínimo para que el código de barras quepa en ella. Si la celda es demasiado pequeña se mostrará un Error de tamaño. Así que redimensionamos la altura de la celda a 30 píxeles:
' Enlarge the cell height to 30 pixels
Range(CurrentCell).RowHeight = 30
La siguiente función creará el control de código de barras directamente encima de la celda:
ActiveSheet.OLEObjects.Add(ClassType:="ACTIVEBARCODE.BarcodeCtrl.1", Link:=False, _
 DisplayAsIcon:=False, Width:=MyWidth , Height:=MyHeight, Top:=MyTop + 2,_
 Left:=MyLeft + 4).Select
Puede vincular directamente el objeto de código de barras con una celda:
ActiveSheet.OLEObjects(MyBarcode).LinkedCell = "B7"
Para acceder fácilmente al control almacenamos el nombre del control en la variable MiCódigoDeBarcación:
MyBarcode = ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Name
Ahora puede utilizar las propiedades y métodos del objeto de código de barras como desee:
' set properties
ActiveSheet.OLEObjects(MyBarcode).Object.Font.Size = 8
ActiveSheet.OLEObjects(MyBarcode).Object.Type = 14 ' Code 128
ActiveSheet.OLEObjects(MyBarcode).Object.Text = Range("C3")
Si ya no necesita el control, puede eliminarlo de la hoja:
ActiveSheet.OLEObjects(MyBarcode).Delete
Sugerencia: Si es necesario que Windows procese los próximos eventos (a menudo llamados "KeepWindowsAlive") dentro de una macro, puede forzarlo utilizando la siguiente función VBA:
DoEvents
Esto puede ser necesario, por ejemplo, si el Control debe dibujarse nuevo.