Excel
Viivakoodiobjektit VBA:lla

 Standard tai korkeampi

Viivakoodien käyttö ja automatisointi VBA:lla Excel

VisualBasic for Applications (VBA) -sovelluksella voit ratkaista monia asioita Excelissä. Tässä näytämme, kuinka ActiveBarcode-ohjausobjekti upotetaan, käytetään ja poistetaan VBA:n avulla:

ActiveBarcode-ohjausobjektin upottaminen taulukkoon:
Tässä esimerkissä viivakoodiohjaus sijoitetaan suoraan solun yläpuolelle. Silloin näyttää siltä, että viivakoodi olisi solun sisällä.

Ensin luemme solujen koon:
CurrentCell = "C3"
MyHeight = Range(CurrentCell).Height
MyWidth = Range(CurrentCell).Width
MyTop = Range(CurrentCell).Top
MyLeft = Range(CurrentCell).Left
Huomaa, että solun on oltava riittävän suuri, jotta viivakoodi mahtuu siihen. Jos solu on liian pieni, näyttöön tulee kokoa koskeva virheilmoitus. Siksi muutamme solun korkeuden 30 pikseliksi:
' Enlarge the cell height to 30 pixels
Range(CurrentCell).RowHeight = 30
Seuraava toiminto luo viivakoodiohjaimen suoraan solun yläpuolelle:
ActiveSheet.OLEObjects.Add(ClassType:="ACTIVEBARCODE.BarcodeCtrl.1", Link:=False, _
 DisplayAsIcon:=False, Width:=MyWidth , Height:=MyHeight, Top:=MyTop + 2,_
 Left:=MyLeft + 4).Select
Voit linkittää viivakoodiobjektin suoraan soluun:
ActiveSheet.OLEObjects(MyBarcode).LinkedCell = "B7"
Jotta pääsemme helposti käsiksi ohjausobjektiin, tallennamme sen nimen muuttujaan MyBarcode:
MyBarcode = ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Name
Nyt voit käyttää viivakoodiobjektin ominaisuuksia ja menetelmiä haluamallasi tavalla:
' set properties
ActiveSheet.OLEObjects(MyBarcode).Object.Font.Size = 8
ActiveSheet.OLEObjects(MyBarcode).Object.Type = 14 ' Code 128
ActiveSheet.OLEObjects(MyBarcode).Object.Text = Range("C3")
Jos et enää tarvitse ohjainta, voit poistaa sen taulukosta:
ActiveSheet.OLEObjects(MyBarcode).Delete
Vinkki: Jos Windowsin on käsiteltävä tulevia tapahtumia (usein nimeltään KeepWindowsAlive) makron sisällä, voit pakottaa tämän käyttämällä seuraavaa VBA-funktiota:
DoEvents
Tämä voi olla tarpeen esimerkiksi silloin, kun ohjausyksikkö joutuu piirtämään itsensä uudelleen.