Pao@Office


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 = False
        '        '
        '    '郵便カスタマコード専用プロパティ--▲▲▲ここまで▲▲▲
        '
        '
        '    'QRコード専用プロパティ--▼▼▼ここから▼▼▼
        '
        '    'エラー訂正レベル L/M/Q/H (デフォルト=M)
        '    Bar.QR_ErrorCorrect = "M"
        '
        '    'エンコードモード N:数字A:英数字Z:漢字含む(デフォルト=Z)
        '    Bar.QR_EncodeMode = "Z"
        '
        '    'バージョン(デフォルト=5)
        '    Bar.QR_Version = 5
        '
        '    'QRコード専用プロパティ--▲▲▲ここまで▲▲▲

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

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

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

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



















































COMコンポーネント API

 

Barcode.Office は、以下の2つインターフェイスを用意しております。

・ActiveXコントロール

・COMコンポーネント

バーコードコントロールを貼り付けて使用する場合、ActiveXコントロールを使用してください。

バーコードオブジェクトの生成から行う場合、COMコンポーネントを使用してください。

(上記の2つの命名には、深い意味はないです。)

 

【オブジェクト生成方法】

以下のようにレイトバインド(遅延バインディング)で生成してください。

CreateObject("Barcode.COM")

 

 

【メソッド】

 

(1)  Open (Width  As Integer,  Height  As Integer)

オブジェクト生成後、必ずCallしてください。

引数に、幅・高さをピクセルで指定してください。

 

(2)  Draw(Value  As String)

バーコードを描画する。(クリップボードに転送)

引数にバーコードの値を指定してください。

 

(3)  Close ()

最後に1度Call してください。

 

 

【プロパティ】

 

(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コード

デフォルト: CODE128(80)

 

(2)  TextWrite  As Boolean

添え字を描画する・しない (省略可)

デフォルト:True (添え字を描画する)

 

(3)  FontName  As String

添え字のフォント名 (省略可)

 

(4)  FontSize  As Double

添え字のフォントサイズ (省略可)

 

(5)  TextKintou  As Boolean

添え字を均等割りする・しない (省略可)

デフォルト:True (均等割りする)

 

(6)  DispStartStopCode  As Boolean

スタート/ストップコードを表示する・しない (省略可)

デフォルト:False (表示しない)

 


(7)  YU_Point  As Double

郵便カスタマバーコードの時のバーコードの大きさを指定。(単位はポイントという)

8 ~ 11.5 ポイントの間で指定。

デフォルト:8.5

 

(8)  QR_ErrorCorrect  As String

QRコードのエラー訂正レベル

“L” / “M” / “Q” / “H”のいずれかを指定。

デフォルト:”M”

 

(9)  QR_EncodeMode  As String

QRコードのエンコードモード

“N”:数字のみ

“A”:大文字英数字

“Z”:漢字含む

デフォルト:”Z”

 

(10) QR_Version  As Integer

QRコードのバージョン

デフォルト:5