에서 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예를 들어 컨트롤을 새로 그려야 하는 경우와 같이 필요할 수 있습니다.