Excel VBAでバーコードを作成するプログラミング手順を解説します。COMコンポーネントAPIを利用した開発者向けガイドです。 国内で最も多く使われている方法で、50万人以上のユーザにご利用いただいております。

Excel VBAマクロのコーディング例 - COMオブジェクト生成から

最小限のコード例

VBAのみでバーコードを生成する最少のコードは以下の通りです:

'バーコードオブジェクト生成
Dim Bar As Object
Bar = CreateObject("Barcode.COM")

'オープン(幅, 高さ)
Bar.Open(200, 100)

'バーコードの種類10~
Bar.BarcodeKind = 80

'バーコード描画(クリップボード転送)
Bar.Draw("TEST CODE")

'クローズ(最後のおまじない)
Bar.Close()

'バーコード描画セル選択
Range("C8").Select()

'バーコード画像描画(クリップボードから)
ActiveSheet.Paste()

バーコード種類の定義

バーコードの種類は、以下のように定義してください:

'バーコード種類(BarcodeKind)
Const BK_JAN13 As Integer = 10
Const BK_JAN8 As Integer = 30
Const BK_ITF As Integer = 40
Const BK_Matrix2of5 As Integer = 50
Const BK_NW7 As Integer = 60
Const BK_CODE39 As Integer = 70
Const BK_CODE128 As Integer = 80
Const BK_EAN128 As Integer = 90
Const BK_郵便カスタマ As Integer = 100
Const BK_QRコード As Integer = 110

完全なコード例

プロパティの設定を含む完全なコード例です:

Private Sub CommandButton1_Click()
    'バーコードオブジェクト生成
    Dim Bar As Object
    Bar = CreateObject("Barcode.COM")

    'オープン(幅,高さ)
    Bar.Open(200, 100)

    'バーコードの種類10~110
    Bar.BarcodeKind = BK_CODE128

'プロパティ(省略可)
    
    '添え字を描画する(デフォルト=True)
    Bar.TextWrite = True
    
    '添え字のフォント指定
    If Range("C11").Value <> "" Then
        Bar.FontName = Range("C11").Font.Name
        Bar.FontSize = Range("C11").Font.Size
    End If
    
    '添え字均等割り付け(デフォルト=True)
    Bar.TextKintou = True
    
    '添え字のSTART/STOP コード表示(デフォルト=False)
    Bar.DispStartStopCode = False
    
    '郵便カスタマコード専用プロパティ
    'ポイント=バーコードの大きさ(8~11.5)
    Bar.YU_Point = 8.5
    
    'QRコード専用プロパティ
    'エラー訂正レベル L/M/Q/H (デフォルト=M)
    Bar.QR_ErrorCorrect = "M"
    
    'エンコードモード N:数字A:英数字Z:漢字含む(デフォルト=Z)
    Bar.QR_EncodeMode = "Z"
    
    'バージョン(デフォルト=5)
    Bar.QR_Version = 5

    'バーコード描画(クリップボード転送)
    Bar.Draw("TEST CODE")

    'クローズ(最後のおまじない)
    Bar.Close()

    'バーコード描画セル選択
    Range("C8").Select()

    'バーコード画像描画(クリップボードから)
    ActiveSheet.Paste()
End Sub

COMコンポーネント API解説

インターフェイス

Barcode.Office は、以下の2つインターフェイスを提供しています:

  • ActiveXコントロール - バーコードコントロールを貼り付けて使用する場合
  • COMコンポーネント - バーコードオブジェクトの生成から行う場合

オブジェクト生成方法

レイトバインド(遅延バインディング)で生成します:

CreateObject("Barcode.COM")

メソッド

Open(Width As Integer, Height As Integer)
  • オブジェクト生成後、必ず実行してください
  • 引数は幅・高さをピクセルで指定
Draw(Value As String)
  • バーコードを描画(クリップボードに転送)
  • 引数にバーコードの値を指定
Close()
  • 最後に1度実行してください

プロパティ

BarcodeKind As Integer

バーコードの種類を指定:

  • 10:JAN13
  • 20:JAN8
  • 30:ITF
  • 40:Matrix 2 of 5
  • 50:NEC 2 of 5
  • 60:NW7
  • 70:CODE39
  • 80:CODE128(デフォルト)
  • 90:EAN128
  • 100:郵便カスタマバーコード
  • 110:QRコード
TextWrite As Boolean
  • 添え字を描画する・しない(省略可)
  • デフォルト:True(描画する)
FontName As String
  • 添え字のフォント名(省略可)
FontSize As Double
  • 添え字のフォントサイズ(省略可)
TextKintou As Boolean
  • 添え字を均等割りする・しない(省略可)
  • デフォルト:True(均等割りする)
DispStartStopCode As Boolean
  • スタート/ストップコードを表示する・しない(省略可)
  • デフォルト:False(表示しない)
YU_Point As Double
  • 郵便カスタマバーコードの時のバーコードの大きさを指定(単位:ポイント)
  • 8 ~ 11.5 ポイントの間で指定
  • デフォルト:8.5
QR_ErrorCorrect As String
  • QRコードのエラー訂正レベル
  • "L" / "M" / "Q" / "H"のいずれかを指定
  • デフォルト:"M"
QR_EncodeMode As String
  • QRコードのエンコードモード
  • "N":数字のみ
  • "A":大文字英数字
  • "Z":漢字含む
  • デフォルト:"Z"
QR_Version As Integer
  • QRコードのバージョン
  • デフォルト:5