Excel
كائنات الباركود باستخدام VBA

 Standard أو أعلى

استخدام الباركود وأتمتته باستخدام VBA في Excel

يمكنك استخدام VisualBasic for Applications (VBA) لحل العديد من المشكلات في Excel. سنوضح لك هنا كيفية تضمين عنصر التحكم ActiveBarcode واستخدامه وحذفه باستخدام VBA:

تضمين عنصر التحكم ActiveBarcode في ورقة:
في هذا المثال، سيتم وضع عنصر تحكم الباركود مباشرة فوق خلية. ثم يبدو أن الباركود سيكون داخل الخلية.

أولاً نقرأ حجم الخلايا:
CurrentCell = "C3"
MyHeight = Range(CurrentCell).Height
MyWidth = Range(CurrentCell).Width
MyTop = Range(CurrentCell).Top
MyLeft = Range(CurrentCell).Left
يرجى ملاحظة أن الخلية يجب أن يكون لها حجم أدنى حتى يتسنى إدخال الرمز الشريطي فيها. إذا كانت الخلية صغيرة جدًا، فسيتم عرض خطأ في الحجم. لذلك نقوم بتغيير حجم الخلية إلى 30 بكسل:
' Enlarge the cell height to 30 pixels
Range(CurrentCell).RowHeight = 30
ستقوم الوظيفة التالية بإنشاء عنصر تحكم الباركود مباشرة فوق الخلية:
ActiveSheet.OLEObjects.Add(ClassType:="ACTIVEBARCODE.BarcodeCtrl.1", Link:=False, _
 DisplayAsIcon:=False, Width:=MyWidth , Height:=MyHeight, Top:=MyTop + 2,_
 Left:=MyLeft + 4).Select
يمكنك ربط كائن الباركود مباشرة بخلية:
ActiveSheet.OLEObjects(MyBarcode).LinkedCell = "B7"
للحصول على وصول سهل إلى عنصر التحكم، نقوم بتخزين اسم عنصر التحكم في المتغير MyBarcode:
MyBarcode = ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Name
الآن يمكنك استخدام خصائص وأساليب كائن الباركود كما تريد:
' set properties
ActiveSheet.OLEObjects(MyBarcode).Object.Font.Size = 8
ActiveSheet.OLEObjects(MyBarcode).Object.Type = 14 ' Code 128
ActiveSheet.OLEObjects(MyBarcode).Object.Text = Range("C3")
إذا لم تعد بحاجة إلى عنصر التحكم، يمكنك حذفه من الورقة:
ActiveSheet.OLEObjects(MyBarcode).Delete
تلميح: إذا كان من الضروري أن يقوم Windows بمعالجة الأحداث القادمة (التي يشار إليها غالبًا باسم KeepWindowsAlive) داخل ماكرو، فيمكنك فرض ذلك باستخدام وظيفة VBA التالية:
DoEvents
قد يكون ذلك ضروريًا، على سبيل المثال، إذا كان على عنصر التحكم أن يرسم نفسه من جديد.