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).LeftBitte 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 = 30Mit 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).SelectSie 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).NameNun 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).DeleteTipp: 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:
DoEventsDies kann notwendig sein, z.B. wenn sich das Control neu zeichnen muss.