Excel
VBA를 사용한 바코드 개체

 Standard 이상

에서 VBA를 사용한 바코드 사용 및 자동화 Excel

응용 프로그램용 비주얼 베이직(VBA)을 사용하여 Excel에서 많은 작업을 해결할 수 있습니다. 여기에서는 VBA를 사용하여 ActiveBarcode 컨트롤을 임베드, 사용 및 삭제하는 방법을 보여드리겠습니다:

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