バーコード作成マクロをつくってみた
どうも、松山担当のBokuです。
今回は、バーコード作成のマクロを作ってみました。
簡単にバーコード作成できますよ。
今回のバーコード作成をするには、バーコードの参照設定が必要ですので、Excel以外にAccessが必要になります 。
さて、さっそくつくってみましょう♪
まず、エクセルを立ち上げます。
開発のタグを押下しましょう。
Visual Basicというのが出てくるので押下しましょう。
すると、以下のような画面になります。
「ツール」タグを押下すると、「参照設定」というところがあるので押下しましょう。
上記の様に参照設定からMicroSoft Access BarCode Control 16.0 を参照設定しておきます。
※Microsoft Access をインストールしている必要があります。
右クリックをして、Visual Basic モジュールを挿入しましょう。
そのあと、以下のソースをコピペしてみましょう。
'★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
Sub ボタン1_Click()
Dim OutSheetName As String
OutSheetName = "出力シート"
InSheetName = "入力シート"
Dim cell_cnt As Integer
Dim getnum As Integer
Application.DisplayAlerts = False
'シート追加
Dim NewWS As Worksheet
Set NewWS = Worksheets.Add(After:=Worksheets(InSheetName))
With NewWS
.Name = OutSheetName
.Columns.ColumnWidth = 10
End With
' 初期値設定
lngTop = 20
Dim Lastrow As Long
Lastrow = Worksheets(InSheetName).Cells(Rows.Count, "A").End(xlUp).Row
' 入力シートのA列のデータを有効行まで読み込む
For cell_cnt = 2 To Lastrow
If cell_cnt = 2 Then
Else
lngLeft = lngLeft + 128
End If
If (cell_cnt - 2) Mod 4 = 0 And cell_cnt <> 2 Then
lngLeft = 0
lngTop = lngTop + 68
End If
intWidth = 300
intHeight = 50
' 何もない場合は、ループ抜ける
If Worksheets(InSheetName).Cells(cell_cnt, 1).Value = "" Then
Exit For
End If
ActiveSheet.OLEObjects.Add(ClassType:="BARCODE.BarCodeCtrl.1", _
Link:=False, DisplayAsIcon:=False, _
Left:=lngLeft + 5, Top:=lngTop - 3, Width:=intWidth, _
Height:=intHeight).Select
Set objOLEObject = Selection
Set objBarCode = objOLEObject.Object
With objBarCode
.Style = 2
.SubStyle = 0
.ShowData = 0
End With
objOLEObject.LinkedCell = "入力シート!A" & cell_cnt
objOLEObject.ShapeRange.LockAspectRatio = msoFalse
objOLEObject.ShapeRange.Width = 120
Application.ScreenUpdating = True
If cell_cnt = 2 Then
Else
left_mar = left_mar + 2
End If
If (cell_cnt - 2) Mod 4 = 0 And cell_cnt <> 2 Then
left_mar = 0
top_mar = top_mar + 5
End If
Worksheets(OutSheetName).Cells(1 + top_mar, 1 + left_mar) = "=入力シート!B" & cell_cnt
Worksheets(OutSheetName).Cells(1 + top_mar, 2 + left_mar) = "=入力シート!C" & cell_cnt
Next
End Sub
'★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
ちなみに、ソースの
With objBarCode
.Style = 2 2は、Barcode のフォーマットです。
Barcode の種類は以下のようなものがあります。
番号 | バーコード種別 | バーコードの説明 |
0 | UPC-A | アメリカの商品コード。12桁。(データ11桁+チェックデジット1桁) |
1 | UPC-E | アメリカの商品コード。短縮バージョン。8桁(データ7桁+チェックデジット1桁) |
2 | JAN-13 | 日本の商品コード。13桁。(データ12桁+チェックデジット1桁) |
3 | JAN-8 | 日本の商品コード。13桁。(データ12桁+チェックデジット1桁) |
4 | Casecode E | 物流コードITFです。ベアラーバー(印刷圧を一定にするための外周枠)が表示されます。 |
5 | NW-7 | 主に数字のみを表示。桁数制限無し。初期値ではスタート/ストップキャラクタ(スタート/ストップ文字)が無いため、かならず「データの確認項目で「1-スタート/ストップ文字」を設定します。 |
6 | Code-39 | 主に数字とアルファベット大文字を表示。桁数制限無し。初期値ではスタート/ストップキャラクタ(スタート/ストップ文字)が無いため、かならず「データの確認項目で「1-スタート/ストップ文字」を設定します。 |
7 | Code-128 | ASCIIの128文字(数字、アルファベット大文字小文字、記号)を全て表示可能な種類。ただしバーコードコントロール9.0では制御文字(HEX 00~1F)や特殊なキャラクタ(FNC1、CodeAなど)を表示できず、目視読み取りできる文字のみをバーコード化します。桁数制限なし。バーとスペースの太さが4段階あるため、高精度な印刷が必要です。 |
8 | U.S.Postnet | アメリカの郵便バーコード |
9 | U.S.PostalFIM | アメリカの郵便バーコードのひとつ 10 カスタマバーコード 日本の郵便カスタマバーコード。名称はバーコードですが、一次元バーコードリーダーで読み取れません。 |
10 | カスタマバーコード | 日本の郵便カスタマバーコード。名称はバーコードですが、一次元バーコードリーダーで読み取れません。 |
日本では、基本JAN or Code 128 で作られてます。
お店のバーコードスキャナもそのような設定が多いみたいですねぇ。
あとは、下のようにボタンを作って上で作成したFunction に割り当てましょう。
上記の、プログラムでは、A、B、C列で、JAN、商品名、金額を設定したのを読みにいっているので、このような形でA、B、C列に記述してください。
あと、Excel 2013以上だと、マクロを有効にしたい場合は、xlsmで保存しなおしましょう。
ボタンを押下すれば、下記のように、「出力シート」にバーコードが作成されます。
※「出力シート」があるとエラーになってしまうので、ボタンで作成する前に「出力シート」の名前を変えておきましょう。
興味があるかたは、「出力シート」があれば削除するように変更してみましょう。
それを印刷すれば、バーコードスキャナで取り込めます。
バーコードスキャナや、お店でレジのある方などは、スキャンして確かめてみてください。
これを使って、バーコード作成できる方がいれば、わざわざソフトを買わなくても
簡単にバーコード作成できますね。
以上、松山担当Bokuでした。