Excel
Oggetti codice a barre con VBA

 Standard o superiore

Utilizzo e automazione dei codici a barre con VBA in Excel

È possibile utilizzare VisualBasic for Applications (VBA) per risolvere molti problemi in Excel. Qui vi mostreremo come incorporare, utilizzare ed eliminare il controllo ActiveBarcode con VBA:

Incorporare il controllo ActiveBarcode in un foglio:
In questo esempio, il controllo del codice a barre verrà posizionato direttamente sopra una cella. In questo modo sembra che il codice a barre si trovi all'interno di una cella.

Per prima cosa leggiamo la dimensione delle celle:

CurrentCell = "C3"
MyHeight = Range(CurrentCell).Height
MyWidth = Range(CurrentCell).Width
MyTop = Range(CurrentCell).Top
MyLeft = Range(CurrentCell).Left
Si noti che una cella deve avere una dimensione minima per potervi inserire il codice a barre. Se la cella è troppo piccola, verrà visualizzato un errore di dimensione. Quindi ridimensioniamo l'altezza della cella a 30 pixel:
' Enlarge the cell height to 30 pixels
Range(CurrentCell).RowHeight = 30
La funzione seguente crea il controllo del codice a barre direttamente sopra la cella:
ActiveSheet.OLEObjects.Add(ClassType:="ACTIVEBARCODE.BarcodeCtrl.1", Link:=False, _
 DisplayAsIcon:=False, Width:=MyWidth , Height:=MyHeight, Top:=MyTop + 2,_
 Left:=MyLeft + 4).Select
È possibile collegare direttamente l'oggetto codice a barre a una cella:
ActiveSheet.OLEObjects(MyBarcode).LinkedCell = "B7"
Per accedere facilmente al controllo, memorizziamo il nome del controllo nella variabile MyBarcode:
MyBarcode = ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Name
Ora è possibile utilizzare le proprietà e metodi dell'oggetto codice a barre come si desidera:
' set properties
ActiveSheet.OLEObjects(MyBarcode).Object.Font.Size = 8
ActiveSheet.OLEObjects(MyBarcode).Object.Type = 14 ' Code 128
ActiveSheet.OLEObjects(MyBarcode).Object.Text = Range("C3")
Se il controllo non serve più, è possibile eliminarlo dal foglio:
ActiveSheet.OLEObjects(MyBarcode).Delete
Suggerimento: se è necessario che Windows elabori gli eventi imminenti (spesso denominati "KeepWindowsAlive") all'interno di una macro, è possibile forzarli utilizzando la seguente funzione VBA:
DoEvents
Questo può essere necessario, ad esempio se il Controllo deve disegnare se stesso in modo nuovo.