Excel
Stregkodeobjekter med VBA

 Standard eller højere

Brug og automatisering af stregkoder med VBA i Excel

Du kan bruge VisualBasic for Applications (VBA) til at løse mange opgaver i Excel. Her viser vi dig, hvordan du integrerer, bruger og sletter ActiveBarcode-kontrolelementet med VBA:

Indlejring af ActiveBarcode-kontrolelementet i et ark:
I dette eksempel placeres en stregkodekontrol direkte over en celle. Derefter ser det ud som om stregkoden befinder sig inde i en celle.

Først læser vi cellernes størrelse:
CurrentCell = "C3"
MyHeight = Range(CurrentCell).Height
MyWidth = Range(CurrentCell).Width
MyTop = Range(CurrentCell).Top
MyLeft = Range(CurrentCell).Left
Bemærk, at en celle skal have en minimumsstørrelse, så stregkoden kan passe ind i den. Hvis cellen er for lille, vises en størrelsesfejl. Derfor ændrer vi cellens højde til 30 pixels:
' Enlarge the cell height to 30 pixels
Range(CurrentCell).RowHeight = 30
Følgende funktion opretter stregkodekontrollen direkte over cellen:
ActiveSheet.OLEObjects.Add(ClassType:="ACTIVEBARCODE.BarcodeCtrl.1", Link:=False, _
 DisplayAsIcon:=False, Width:=MyWidth , Height:=MyHeight, Top:=MyTop + 2,_
 Left:=MyLeft + 4).Select
Du kan forbinde stregkodeobjektet direkte med en celle:
ActiveSheet.OLEObjects(MyBarcode).LinkedCell = "B7"
For at få nem adgang til kontrolelementet gemmer vi navnet på kontrolelementet i variablen MyBarcode:
MyBarcode = ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Name
Nu kan du bruge stregkodeobjektets egenskaber og metoder, som du vil:
' set properties
ActiveSheet.OLEObjects(MyBarcode).Object.Font.Size = 8
ActiveSheet.OLEObjects(MyBarcode).Object.Type = 14 ' Code 128
ActiveSheet.OLEObjects(MyBarcode).Object.Text = Range("C3")
Hvis du ikke længere har brug for kontrollen, kan du slette den fra arket:
ActiveSheet.OLEObjects(MyBarcode).Delete
Tip: Hvis det er nødvendigt for Windows at behandle kommende begivenheder (ofte benævnt KeepWindowsAlive) inden for en makro, kan du tvinge dette ved hjælp af følgende VBA-funktion:
DoEvents
Dette kan være nødvendigt, f.eks. hvis kontrolelementet skal tegne sig selv på ny.