Word
VBA를 사용한 바코드 개체

 Standard 이상

VBA를 이용한 바코드 사용 및 자동화

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

ActiveBarcode 컨트롤을 문서에 삽입합니다:
이 예제에서는 바코드 컨트롤이 커서 위치에 배치됩니다. 그런 다음 ab 변수를 사용하여 개체를 수정할 수 있습니다:
Dim ab As Object
Set ab = Selection.InlineShapes.AddOLEObject(ClassType:="ACTIVEBARCODE.BarcodeCtrl.1",
  FileName:="", LinkToFile:=False, DisplayAsIcon:=False)
ab 변수를 사용하여 객체의 표준 속성(높이, 너비)을 설정합니다:
ab.Width = 200
ab.Height = 120
바코드 개체의 프로퍼티메서드 속성을 사용하여 OLEFormat.Object에 액세스할 수 있습니다:
ab.OLEFormat.Object.Type = 6
ab.OLEFormat.Object.Text = "987698769812"
또한 abObject와 같은 변수를 생성하고 사용하여 보다 깔끔하게 프로퍼티에 액세스할 수도 있습니다:
Dim abObject As Object
With ab.OLEFormat
  .Activate
  Set abObject = .Object
End With

abObject.Type = 6
abObject.Text = "987698769812"
다음 호출을 사용하면 바코드 객체를 InlineShape로 캐스팅할 수 있습니다. 변환 후에는 바코드를 변경할 수 없다는 점에 유의하세요.
ab.ConvertToShape
컨트롤이 더 이상 필요하지 않은 경우 문서에서 삭제할 수 있습니다:
 ab.Delete
힌트: Windows가 매크로 내에서 예정된 이벤트(흔히 KeepWindowsAlive라고 함)를 처리해야 하는 경우 다음 VBA 함수를 사용하여 이를 강제할 수 있습니다:
DoEvents
예를 들어 컨트롤을 새로 그려야 하는 경우와 같이 필요할 수 있습니다.

ActiveBarcode: Info
Word 매크로(VBA)를 사용하여 페이지에 바코드를 추가합니다.
에 대한 Word 365, 2024, 2021, 2019, 2016, 2013, 2010
이 매크로는 가변 콘텐츠와 페이지 번호가 포함된 각 페이지에 하나의 바코드를 추가하는 방법을 보여줍니다.

Word 편지 병합에서 바코드 사용

Word 365, 2024, 2021, 2019, 2016, 2013, 2010, 2007, 2003

1


ActiveBarcode: Word 편지 병합에서 바코드 사용.
기존 편지 병합 문서를 열거나 새 문서를 만듭니다.
2


바코드 개체를 편지 병합 문서에 추가합니다. 문서에서 원하는 위치에 배치하고 바코드 유형 및 크기와 같은 개체의 속성을 설정합니다.

예를 들어 다음 스크린샷과 같이 표시됩니다. 여기서 노란색으로 강조 표시된 바코드 개체의 이름을 주목하세요. 보통은 바코드1입니다. ActiveBarcode: Barcode, Word


3


메일 병합에는 매크로가 필요합니다. 다음 매크로를 추가할 수 있습니다. 매크로를 클립보드에 복사하여 Word의 Visual Basic for Applications 편집기에 붙여넣습니다:
Sub MailMerge_example_with_ActiveBarcode()
 ' Macro shows how to print barcodes in a mail merge.
 if MsgBox("Do you want to print mail merged documents?", vbYesNo, "Question") = vbYes Then
   'counter to zero
   num = 0
   'first record is number one
   ActiveDocument.MailMerge.DataSource.ActiveRecord = 1
   Do
    ' Fill ActiveBarcode text property now
    ActiveDocument.Barcode1.Text = ActiveDocument.MailMerge.DataSource.DataFields("Productcode").Value
    ' do not prompt for printing...
    Options.PrintBackground = True
    ' print page
    ActiveDocument.PrintOut
    ' recognize old record
    lastone = ActiveDocument.MailMerge.DataSource.ActiveRecord
    ' select next record
    ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord
    'count
    num = num + 1
    ' check if there are new ones
   Loop While ActiveDocument.MailMerge.DataSource.ActiveRecord <> lastone
   ' notify user
   MsgBox (Str(num) + " pages printed!")
 End If
 End Sub

4


결과는 다음과 같습니다. 스크린샷에서 매크로가 삽입된 위치도 확인할 수 있습니다. ActiveBarcode: Barcode, Word


5


이제 매크로를 메일 병합 문서에 맞게 조정하세요:

바코드 객체의 이름이 Barcode1이 아닌 경우 매크로에서 이름을 변경합니다(스크린샷의 왼쪽 노란색 표시).

이제 데이터 소스에서 바코드에 사용할 필드 이름을 변경합니다. 이 예제에서는 스크린샷에서 오른쪽 노란색 표시인 Productcode가 사용됩니다. 따옴표 안의 이름을 변경합니다. ActiveBarcode: Barcode, Word


6


문서를 저장하고 매크로를 시작하여 테스트 인쇄를 시작합니다.

팁: 소량의 데이터로 테스트 인쇄를 시작하면 오류 발생 시 오인쇄를 줄일 수 있습니다. ActiveBarcode: Barcode, Word


7


완료되었습니다.

Info 매크로를 문서 자체가 아닌 Normal.dot에 배치한 경우 매크로를 실행할 때 문서가 디자인 모드에 있지 않아야 합니다. 그렇게 하면 오류가 발생합니다. 따라서 매크로를 실행하기 전에 디자인 모드를 끄세요.