Excel
Objetos de código de barras con VBA
Uso y automatización de códigos de barras con VBA en Excel
1
Puede usar VisualBasic para Aplicaciones (VBA) para resolver muchas cosas en Excel. Aquí le mostraremos cómo incrustar, usar y eliminar el control ActiveBarcode con VBA:
Incrustar el 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 celdas:
CurrentCell = "C3"Tenga en cuenta que una celda debe tener un tamaño mínimo para que el código de barras pueda caber en ella. Si la celda es demasiado pequeña, se mostrará un 'Error de tamaño'. Así que cambiamos el tamaño de la altura de la celda a 30 píxeles:
MyHeight = Range(CurrentCell).Height
MyWidth = Range(CurrentCell).Width
MyTop = Range(CurrentCell).Top
MyLeft = Range(CurrentCell).Left
' Enlarge the cell height to 30 pixelsLa siguiente función creará el control de código de barras directamente encima de la celda:
Range(CurrentCell).RowHeight = 30
ActiveSheet.OLEObjects.Add(ClassType:="ACTIVEBARCODE.BarcodeCtrl.1", Link:=False, _Para facilitar el acceso al control recordamos el nombre del control en una variable denominada 'MyBarcode':
DisplayAsIcon:=False, Width:=MyWidth , Height:=MyHeight, Top:=MyTop + 2,_
Left:=MyLeft + 4).Select
MyBarcode = ActiveSheet.Shapes(ActiveSheet.Shapes.Count).NameAhora puede utilizar las propiedades y métodos del objeto de código de barras como desee:
' set propertiesSi ya no necesita el control, puede eliminarlo de la hoja:
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).DeleteSugerencia: Si es necesario que Windows procese los próximos eventos (a menudo denominados "KeepWindowsAlive") dentro de una macro, puede forzar esto mediante la siguiente función VBA:
DoEventsEsto puede ser necesario, por ejemplo, si el Control debe dibujarse de nuevo.