Excel
Barcode-Objekte mit VBA

 Standard oder höher

Barcode Objekte mit VBA automatisieren in Excel

Sie können VisualBasic for Applications (VBA) verwenden, um viele Aufgaben in Excel zu lösen. Hier zeigen wir Ihnen, wie Sie das ActiveBarcode-Steuerelement mit VBA einbetten, verwenden und löschen können:

Einbetten des ActiveBarcode Controls in ein Blatt:
In diesem Beispiel wird ein Barcode-Steuerelement direkt über einer Zelle platziert. Dann sieht es so aus, als ob sich der Barcode innerhalb einer Zelle befinden würde.

Zuerst lesen wir die Größe der Zellen ab:

CurrentCell = "C3"
MyHeight = Range(CurrentCell).Height
MyWidth = Range(CurrentCell).Width
MyTop = Range(CurrentCell).Top
MyLeft = Range(CurrentCell).Left
Bitte beachten Sie, dass eine Zelle eine Mindestgröße haben sollte, damit der Barcode in sie hineinpassen kann. Wenn die Zelle zu klein ist, wird ein Größenfehler angezeigt. Wir ändern also die Höhe der Zelle auf 30 Pixel:
' Enlarge the cell height to 30 pixels
Range(CurrentCell).RowHeight = 30
Mit der folgenden Funktion wird das Barcode-Steuerelement direkt über der Zelle erstellt:
ActiveSheet.OLEObjects.Add(ClassType:="ACTIVEBARCODE.BarcodeCtrl.1", Link:=False, _
 DisplayAsIcon:=False, Width:=MyWidth , Height:=MyHeight, Top:=MyTop + 2,_
 Left:=MyLeft + 4).Select
Sie können das Barcode-Objekt direkt mit einer Zelle verknüpfen:
ActiveSheet.OLEObjects(MyBarcode).LinkedCell = "B7"
Um den Zugriff auf das Steuerelement zu erleichtern, speichern wir den Namen des Steuerelements in der Variablen MyBarcode:
MyBarcode = ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Name
Nun können Sie die Eigenschaften und Methoden des Barcode-Objekts nach Belieben verwenden:
' set properties
ActiveSheet.OLEObjects(MyBarcode).Object.Font.Size = 8
ActiveSheet.OLEObjects(MyBarcode).Object.Type = 14 ' Code 128
ActiveSheet.OLEObjects(MyBarcode).Object.Text = Range("C3")
Wenn Sie das Steuerelement nicht mehr benötigen, können Sie es aus dem Blatt löschen:
ActiveSheet.OLEObjects(MyBarcode).Delete
Tipp: Wenn es erforderlich ist, dass Windows anstehende Ereignisse (oft als "KeepWindowsAlive" bezeichnet) innerhalb eines Makros verarbeitet, können Sie dies mit der folgenden VBA-Funktion erzwingen:
DoEvents
Dies kann notwendig sein, z.B. wenn sich das Control neu zeichnen muss.