Excel – objekty čiarových kódov s VBA

 Standard alebo vyššia

Používanie a automatizácia čiarových kódov pomocou VBA v Excel

Na riešenie mnohých úloh v programe Excel môžete použiť jazyk VisualBasic for Applications (VBA). Tu vám ukážeme, ako vložiť, používať a odstrániť ovládací prvok ActiveBarcode pomocou VBA:

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).Left
Upozorň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 = 30
Nasledujú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).Select
Objekt č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).Name
Teraz 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).Delete
Tip: 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:
DoEvents
To môže byť potrebné napríklad v prípade, ak sa ovládač musí nakresliť nanovo.