Excel
Oggetti di codici a barre con VBA
Utilizzo e automazione dei codici a barre con VBA in Excel
1
È possibile utilizzare VisualBasic, Applications Edition (VBA) per risolvere molte operazioni in Excel. Qui ti mostreremo come incorporare, utilizzare ed eliminare il controllo ActiveBarcode con VBA:
Incorporamento del controllo ActiveBarcode in un foglio:
In questo esempio un controllo codice a barre verrà posizionato direttamente sopra una cella. Allora sembra che il codice a barre sarebbe all'interno di una cella.
Per prima cosa leggiamo le dimensioni delle celle:
CurrentCell = "C3"Si prega di notare che una cella deve avere una dimensione minima in modo che il codice a barre possa adattarsi. Se la cella è troppo piccola, verrà visualizzato un "Errore di dimensione". Quindi ridimensioniamo l'altezza della cella a 30 pixel:
MyHeight = Range(CurrentCell).Height
MyWidth = Range(CurrentCell).Width
MyTop = Range(CurrentCell).Top
MyLeft = Range(CurrentCell).Left
' Enlarge the cell height to 30 pixelsLa seguente funzione creerà il controllo del codice a barre direttamente sopra la cella:
Range(CurrentCell).RowHeight = 30
ActiveSheet.OLEObjects.Add(ClassType:="ACTIVEBARCODE.BarcodeCtrl.1", Link:=False, _Per ottenere un facile accesso al controllo ricordiamo il nome del controllo in una variabile denominata 'MyBarcode':
DisplayAsIcon:=False, Width:=MyWidth , Height:=MyHeight, Top:=MyTop + 2,_
Left:=MyLeft + 4).Select
MyBarcode = ActiveSheet.Shapes(ActiveSheet.Shapes.Count).NameOra è possibile utilizzare le proprietà e i metodi dell'oggetto codice a barre come ti piace:
' set propertiesSe il controllo non è più necessario, è possibile eliminarlo dal foglio:
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).DeleteSuggerimento: Se è necessario che Windows elabori gli eventi imminenti (spesso denominati come "KeepWindowsAlive") all'interno di una macro, è possibile forzare questa operazione utilizzando la seguente funzione VBA:
DoEventsCiò può essere necessario, ad esempio se il Controllo deve disegnarsi di nuovo.