Viivakoodien käyttö ja automatisointi VBA:lla Excel
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).LeftHuomaa, 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 = 30Seuraava 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).SelectVoit 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).NameNyt 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).DeleteVinkki: 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:
DoEventsTämä voi olla tarpeen esimerkiksi silloin, kun ohjausyksikkö joutuu piirtämään itsensä uudelleen.