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).LeftTenga 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 = 30La 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).SelectPuede 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).NameAhora 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).DeleteSugerencia: 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:
DoEventsEsto puede ser necesario, por ejemplo, si el Control debe dibujarse nuevo.