Používanie a automatizácia čiarových kódov pomocou VBA v Excel
Vloženie ovládacieho prvku ActiveBarcode do listu:
V tomto príklade bude ovládací prvok čiarového kódu umiestnený priamo nad bunkou. Potom to vyzerá, ako keby čiarový kód bol vnútri bunky.
Najprv prečítame veľkosť buniek:
CurrentCell = "C3" MyHeight = Range(CurrentCell).Height MyWidth = Range(CurrentCell).Width MyTop = Range(CurrentCell).Top MyLeft = Range(CurrentCell).LeftUpozorňujeme, že bunka by mala mať minimálnu veľkosť, aby sa do nej vošiel čiarový kód. Ak je bunka príliš malá, zobrazí sa chyba veľkosti. Preto zmeníme výšku bunky na 30 pixelov:
' Enlarge the cell height to 30 pixels Range(CurrentCell).RowHeight = 30Nasledujúca funkcia vytvorí ovládací prvok čiarového kódu priamo nad bunkou:
ActiveSheet.OLEObjects.Add(ClassType:="ACTIVEBARCODE.BarcodeCtrl.1", Link:=False, _ DisplayAsIcon:=False, Width:=MyWidth , Height:=MyHeight, Top:=MyTop + 2,_ Left:=MyLeft + 4).SelectObjekt čiarového kódu môžete priamo prepojiť s bunkou:
ActiveSheet.OLEObjects(MyBarcode).LinkedCell = "B7"Aby sme mali ľahký prístup k ovládacím prvkom, uložíme ich názvy do premennej MyBarcode:
MyBarcode = ActiveSheet.Shapes(ActiveSheet.Shapes.Count).NameTeraz môžete vlastnosti a metódy objektu čiarového kódu používať podľa potreby:
' set properties ActiveSheet.OLEObjects(MyBarcode).Object.Font.Size = 8 ActiveSheet.OLEObjects(MyBarcode).Object.Type = 14 ' Code 128 ActiveSheet.OLEObjects(MyBarcode).Object.Text = Range("C3")Ak už ovládací prvok nepotrebujete, môžete ho z listu odstrániť:
ActiveSheet.OLEObjects(MyBarcode).DeleteTip: Ak je potrebné, aby systém Windows spracoval nadchádzajúce udalosti (často označované ako KeepWindowsAlive) v rámci makra, môžete to vynútiť pomocou nasledujúcej funkcie VBA:
DoEventsTo môže byť potrebné napríklad v prípade, ak sa ovládač musí nakresliť nanovo.