Word
VBAによるバーコードオブジェクト

 Standard 以上

VBAを使用したバーコードの利用と自動化

Word 365, 2024, 2021, 2019, 2016, 2013, 2010, 2007, 2003
VisualBasic for Applications (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
このマクロは、可変コンテンツとページ番号を含む各ページに1つのバーコードを追加する方法を示す。

Wordのメールマージでバーコードを使用する

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

1


ActiveBarcode: Wordのメールマージでバーコードを使用する.
既存のメールマージ文書を開くか、新規作成します。
2


バーコードオブジェクトをメールマージ文書に追加します。ドキュメント内の必要な場所に配置し、バーコードのタイプやサイズなど、オブジェクトのプロパティを設定します。

これは例えば次のスクリーンショットのようになる。バーコード・オブジェクトの名前に注目してください - ここでは黄色でハイライトされています。通常、これはBarcode1となります。 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に配置した場合、マクロ実行時にドキュメントがデザインモードであってはなりません。そうするとエラーになります。したがって、マクロを実行する前にデザインモードをオフにしてください。