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