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
זה יכול להיות הכרחי, למשל, אם ה-Control צריך לצייר את עצמו מחדש.