استخدام الباركود وأتمتته باستخدام VBA في Excel
تضمين عنصر التحكم 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قد يكون ذلك ضروريًا، على سبيل المثال، إذا كان على عنصر التحكم أن يرسم نفسه من جديد.