VBA ile barkodları kullanma ve otomatikleştirme Excel
Excel'de birçok şeyi çözmek için VisualBasic for Applications (VBA) kullanabilirsiniz. Burada size ActiveBarcode kontrolünü VBA ile nasıl gömeceğinizi, kullanacağınızı ve sileceğinizi göstereceğiz:
ActiveBarcode Kontrolünü bir Sayfaya Yerleştirme:
Bu örnekte, bir barkod kontrolü doğrudan bir hücrenin üzerine yerleştirilecektir. O zaman barkod bir hücrenin içindeymiş gibi görünür.
Önce hücre boyutunu okuyoruz:
CurrentCell = "C3" MyHeight = Range(CurrentCell).Height MyWidth = Range(CurrentCell).Width MyTop = Range(CurrentCell).Top MyLeft = Range(CurrentCell).LeftBarkodun sığabilmesi için bir hücrenin minimum boyutta olması gerektiğini lütfen unutmayın. Hücre çok küçükse bir Boyut hatası görüntülenecektir. Bu yüzden hücrenin yüksekliğini 30 piksel olarak yeniden boyutlandırıyoruz:
' Enlarge the cell height to 30 pixels Range(CurrentCell).RowHeight = 30Aşağıdaki fonksiyon, barkod kontrolünü doğrudan hücrenin üzerinde oluşturacaktır:
ActiveSheet.OLEObjects.Add(ClassType:="ACTIVEBARCODE.BarcodeCtrl.1", Link:=False, _ DisplayAsIcon:=False, Width:=MyWidth , Height:=MyHeight, Top:=MyTop + 2,_ Left:=MyLeft + 4).SelectBarkod nesnesini doğrudan bir hücreye bağlayabilirsiniz:
ActiveSheet.OLEObjects(MyBarcode).LinkedCell = "B7"Kontrole kolay erişim sağlamak için kontrolün adını MyBarcode değişkeninde saklarız:
MyBarcode = ActiveSheet.Shapes(ActiveSheet.Shapes.Count).NameArtık barkod nesnesinin özelliklerini ve metotlarını istediğiniz gibi kullanabilirsiniz:
' set properties ActiveSheet.OLEObjects(MyBarcode).Object.Font.Size = 8 ActiveSheet.OLEObjects(MyBarcode).Object.Type = 14 ' Code 128 ActiveSheet.OLEObjects(MyBarcode).Object.Text = Range("C3")Kontrole artık ihtiyacınız yoksa sayfadan silebilirsiniz:
ActiveSheet.OLEObjects(MyBarcode).Deleteİpucu: Windows'un yaklaşan olayları (genellikle KeepWindowsAlive olarak adlandırılır) bir makro içinde işlemesi gerekiyorsa, aşağıdaki VBA işlevini kullanarak bunu zorlayabilirsiniz:
DoEventsBu, örneğin Kontrolün kendisini yeni çizmesi gerekiyorsa gerekli olabilir.