Word
Obiekty kodów kreskowych z VBA

 Standard lub wyższy

Korzystanie z kodów kreskowych i ich automatyzacja za pomocą VBA

Word 365, 2024, 2021, 2019, 2016, 2013, 2010, 2007, 2003
VisualBasic for Applications (VBA) może być używany do rozwiązywania wielu problemów w programie Word. Tutaj pokażemy, jak osadzać, używać i usuwać kontrolkę ActiveBarcode za pomocą VBA:

Osadzanie kontrolki ActiveBarcode w dokumencie:
W tym przykładzie kontrolka kodu kreskowego zostanie umieszczona w pozycji kursora. Następnie można zmodyfikować obiekt za pomocą zmiennej ab:
Dim ab As Object
Set ab = Selection.InlineShapes.AddOLEObject(ClassType:="ACTIVEBARCODE.BarcodeCtrl.1",
  FileName:="", LinkToFile:=False, DisplayAsIcon:=False)
Ustaw standardowe właściwości (wysokość, szerokość) obiektu za pomocą zmiennej ab:
ab.Width = 200
ab.Height = 120
Dostęp do właściwości i metod obiektu kodu kreskowego można uzyskać za pomocą właściwości OLEFormat.Object:
ab.OLEFormat.Object.Type = 6
ab.OLEFormat.Object.Text = "987698769812"
Można również użyć bardziej czystego sposobu dostępu do właściwości, tworząc i używając zmiennej, np. o nazwie abObject:
Dim abObject As Object
With ab.OLEFormat
  .Activate
  Set abObject = .Object
End With

abObject.Type = 6
abObject.Text = "987698769812"
Za pomocą poniższego wywołania można przekształcić obiekt kodu kreskowego w InlineShape. Należy pamiętać, że po konwersji nie można zmienić kodu kreskowego.
ab.ConvertToShape
Jeśli kontrolka nie jest już potrzebna, można ją usunąć z dokumentu:
 ab.Delete
Wskazówka: Jeśli konieczne jest, aby system Windows przetwarzał nadchodzące zdarzenia (często określane jako KeepWindowsAlive) w makrze, można to wymusić za pomocą następującej funkcji VBA:
DoEvents
Może to być konieczne, np. jeśli kontrolka musi narysować się jako nowa.

ActiveBarcode: Info
Makro Word (VBA) do dodawania kodów kreskowych do stron.
dla Word 365, 2024, 2021, 2019, 2016, 2013, 2010
To makro pokazuje, jak dodać jeden kod kreskowy do każdej strony zawierającej zmienną treść i numer strony.

Używanie kodów kreskowych w korespondencji seryjnej programu Word

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

1


ActiveBarcode: Używanie kodów kreskowych w korespondencji seryjnej programu Word.
Otwórz istniejący dokument korespondencji seryjnej lub utwórz nowy.
2


Dodaj obiekt kodu kreskowego do dokumentu korespondencji seryjnej. Umieść go w wybranym miejscu w dokumencie i ustaw właściwości obiektu, takie jak typ i rozmiar kodu kreskowego.

Będzie to wyglądać na przykład tak, jak na poniższym zrzucie ekranu. Zwróć uwagę na nazwę obiektu kodu kreskowego - zaznaczoną tutaj na żółto. Zazwyczaj będzie to Barcode1. ActiveBarcode: Barcode, Word


3


Do korespondencji seryjnej wymagane jest makro. Można dodać następujące makro. Skopiuj je do schowka i wklej do edytora Visual Basic for Applications w programie Word:
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


Wynik wygląda następująco. Na zrzucie ekranu widać również, gdzie makro zostało wstawione. ActiveBarcode: Barcode, Word


5


Teraz dostosuj makro do dokumentu połączenia poczty:

Jeśli nazwa obiektu kodu kreskowego nie jest Barcode1, zmień ją w makrze - lewy żółty znacznik na zrzucie ekranu.

Teraz należy zmienić nazwę pola ze źródła danych, które ma być używane dla kodu kreskowego. W tym przykładzie użyto Productcode - prawy żółty znacznik na zrzucie ekranu. Zmień nazwę w cudzysłowie. ActiveBarcode: Barcode, Word


6


Zapisz dokument i uruchom makro do wydruku testowego.

Wskazówka: Rozpocznij wydruk testowy od niewielkiej ilości danych, aby w przypadku błędu było mniej błędnych wydruków. ActiveBarcode: Barcode, Word


7


Gotowe.

Info Jeśli makro zostało umieszczone w pliku Normal.dot, a nie w samym dokumencie, dokument nie może znajdować się w trybie projektowania podczas wykonywania makra. Spowoduje to błąd. Dlatego przed uruchomieniem makra należy wyłączyć tryb projektowania.