Excel
Objets code-barres avec VBA
Utilisation et automatisation des codes à barres avec VBA dans Excel
1
Vous pouvez utiliser VisualBasic for Applications (VBA) pour résoudre beaucoup de choses dans Excel. Ici, nous allons vous montrer comment intégrer, utiliser et supprimer le contrôle ActiveBarcode avec VBA:
Intégration du contrôle ActiveBarcode dans une feuille :
Dans cet exemple, un contrôle de code à barres sera placé directement au-dessus d'une cellule. Ensuite, il semble que le code-barres serait à l'intérieur d'une cellule.
Tout d'abord, nous lisons la taille des cellules:
CurrentCell = "C3"Veuillez noter qu'une cellule doit avoir une taille minimale afin que le code-barres puisse s'y intégrer. Si la cellule est trop petite, une « erreur de taille » s'affiche. Donc, nous redimensionnons la hauteur de la cellule à 30 pixels:
MyHeight = Range(CurrentCell).Height
MyWidth = Range(CurrentCell).Width
MyTop = Range(CurrentCell).Top
MyLeft = Range(CurrentCell).Left
' Enlarge the cell height to 30 pixelsLa fonction suivante créera le contrôle du code à barres directement au-dessus de la cellule :
Range(CurrentCell).RowHeight = 30
ActiveSheet.OLEObjects.Add(ClassType:="ACTIVEBARCODE.BarcodeCtrl.1", Link:=False, _Pour accéder facilement au contrôle, nous rappelons le nom du contrôle dans une variable nommée 'MyBarcode' :
DisplayAsIcon:=False, Width:=MyWidth , Height:=MyHeight, Top:=MyTop + 2,_
Left:=MyLeft + 4).Select
MyBarcode = ActiveSheet.Shapes(ActiveSheet.Shapes.Count).NameMaintenant, vous pouvez utiliser les propriétés et les méthodes de l'objet de code à barres comme vous le souhaitez:
' set propertiesSi vous n'avez plus besoin du contrôle, vous pouvez le supprimer de la feuille :
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).DeleteAstuce: S'il est nécessaire que Windows traiter les événements à venir (souvent nommé comme "KeepWindowsAlive") dans une macro, vous pouvez forcer cela en utilisant la fonction VBA suivante:
DoEventsCela peut être nécessaire, par exemple si le Contrôle doit se dessiner à nouveau.