商品をこれから出品したりすることもあるので、バーコード発行するエクセルVBAを作ってみました。
実際に作ったファイルはこちらから無料でダウンロードできます。
JANCODE-nicBARで出力したサンプルを載せておきます。
因みにフォントはそれぞれ以下からダウンロードさせていただきました。
バーコード発行エクセルの説明
サンプルを見て分かる通りですが、1ページに24枚のバーコードを作ります。
1行に3枚×8段が1シートになります。
シートは3枚あります。
「リスト」シート
「バーコード」シート
「フォーマット」シート
リストシート
商品(型番)、数量、商品名をを入力して、バーコード生成ボタンを押すと、バーコードを発行できます。
EF列で発行するバーコードやフォントサイズなどを指定することでそれに応じたバーコードが出せます。
バーコードシート
リストシートで入力した内容が発行されます。
1ページに24枚(3×8行)できます。
フォーマットシート
フォーマットシートに設定した幅や高さをコピーして、バーコードシートが作成されます。
そのため、フォーマットシートで変更した高さや幅を変更することで印刷するバーコードも変更されます。
バーコード発行エクセルの使い方
基本的に幅や高さは自分で変更できるように作っています。
また、フォントや発行するバーコードの種類も決めることができます。
詳細をこの下で説明していきます。
フォントのインストール
フォントは事前にインストールした状態でバーコード発行をして下さい。
フォントがないとマクロを実行してもバーコードは表示されません。
私がテスト的に試したのは以下の3つのフォントです。
すべて、ウェブサイトからダウンロードできますが、一応リンクも載せておきます。
フォーマットシートで幅・高さ変更
バーコードの種類や、印刷するシールによってはずれが出てくることもあり得ます。
なので、フォーマットシートの高さや幅を変更することで反映することができるようにしています。
文字が入るのはB、D、F列なのでここをメインに幅や高さ調整すればOKです。
バーコード種類・スタートストップコード・フォントサイズ変更
上の画像の赤枠で囲んでいるところで以下を設定できます。
バーコード種類
スタート、ストップコード
フォントサイズ
水色のところはバーコードの情報を設定します。
例えば、CODE39のバーコードを使う場合、フォントを変更します。
また、CODE39はスタート、ストップコードが必要なので*を入れておきます。
紫色のところは商品コードが表示されるセルの設定です。
好きなサイズに変更してみて下さい。
緑色のところは商品がが表示されるセルの設定です。
商品名が長かったりする場合は、フォントサイズを小さくできます。
フォントサイズや、揃え位置を変更してみたサンプルです。
JANCODE-nicWabunで商品コードは左寄せ、商品名は右寄せです。
フォント設定について
インストールした後に、フォントを選ぶことができます。
F2セルにセットするフォントはこの表示されているフォント名を記入してください。
CODE39であれば、フォント名と同じ「CODE39」と入力してください
バーコード発行のVBA
一部だけの抜粋ですが、以下がコードです。
商品コードをセルに出力して、フォントを設定しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
'リストシートの情報を元にバーコードシートに転記 For i = 1 To CreateBarCodeCount ItemCode = Sheets("リスト").Range("A" & i + 1) Amount = Int(Sheets("リスト").Range("B" & i + 1)) ItemName = Sheets("リスト").Range("C" & i + 1) '数量分ループ For j = 1 To Amount '24枚(1ページ分作った場合) If (BarCodeCreatedCount Mod 24 = 0) And BarCodeCreatedCount <> 0 Then kijunRow = kijunRow + 5 LoopCount = 1 '3列書込んだら次の行へいく ElseIf LoopCount = 4 Then LoopCount = 1 kijunRow = kijunRow + 4 End If 'B列 If LoopCount = 1 Then 'バーコード Sheets("バーコード").Range("B" & kijunRow) = Range("スタートコード") & ItemCode & Range("ストップコード") Sheets("バーコード").Range("B" & kijunRow).Font.Name = Range("バーコードフォント") Sheets("バーコード").Range("B" & kijunRow).Font.Size = Range("バーコードフォントサイズ") Sheets("バーコード").Range("B" & kijunRow).HorizontalAlignment = ConvertHorizontalAlignment(Range("バーコード揃え")) '商品コード Sheets("バーコード").Range("B" & kijunRow + 1) = ItemCode Sheets("バーコード").Range("B" & kijunRow + 1).Font.Size = Range("商品コードフォントサイズ") Sheets("バーコード").Range("B" & kijunRow + 1).HorizontalAlignment = ConvertHorizontalAlignment(Range("商品コード揃え")) '商品名 Sheets("バーコード").Range("B" & kijunRow + 2) = ItemName Sheets("バーコード").Range("B" & kijunRow + 2).Font.Size = Range("商品名フォントサイズ") Sheets("バーコード").Range("B" & kijunRow + 2).HorizontalAlignment = ConvertHorizontalAlignment(Range("商品名揃え")) BarCodeCreatedCount = BarCodeCreatedCount + 1 'D列 ElseIf LoopCount = 2 Then 'バーコード Sheets("バーコード").Range("D" & kijunRow) = Range("スタートコード") & ItemCode & Range("ストップコード") Sheets("バーコード").Range("D" & kijunRow).Font.Name = Range("バーコードフォント") Sheets("バーコード").Range("D" & kijunRow).Font.Size = Range("バーコードフォントサイズ") Sheets("バーコード").Range("D" & kijunRow).HorizontalAlignment = ConvertHorizontalAlignment(Range("バーコード揃え")) '商品コード Sheets("バーコード").Range("D" & kijunRow + 1) = ItemCode Sheets("バーコード").Range("D" & kijunRow + 1).Font.Size = Range("商品コードフォントサイズ") Sheets("バーコード").Range("D" & kijunRow + 1).HorizontalAlignment = ConvertHorizontalAlignment(Range("商品コード揃え")) '商品名 Sheets("バーコード").Range("D" & kijunRow + 2) = ItemName Sheets("バーコード").Range("D" & kijunRow + 2).Font.Size = Range("商品名フォントサイズ") Sheets("バーコード").Range("D" & kijunRow + 2).HorizontalAlignment = ConvertHorizontalAlignment(Range("商品名揃え")) BarCodeCreatedCount = BarCodeCreatedCount + 1 'F列 Else 'バーコード Sheets("バーコード").Range("F" & kijunRow) = Range("スタートコード") & ItemCode & Range("ストップコード") Sheets("バーコード").Range("F" & kijunRow).Font.Name = Range("バーコードフォント") Sheets("バーコード").Range("F" & kijunRow).Font.Size = Range("バーコードフォントサイズ") Sheets("バーコード").Range("F" & kijunRow).HorizontalAlignment = ConvertHorizontalAlignment(Range("バーコード揃え")) '商品コード Sheets("バーコード").Range("F" & kijunRow + 1) = ItemCode Sheets("バーコード").Range("F" & kijunRow + 1).Font.Size = Range("商品コードフォントサイズ") Sheets("バーコード").Range("F" & kijunRow + 1).HorizontalAlignment = ConvertHorizontalAlignment(Range("商品コード揃え")) '商品名 Sheets("バーコード").Range("F" & kijunRow + 2) = ItemName Sheets("バーコード").Range("F" & kijunRow + 2).Font.Size = Range("商品名フォントサイズ") Sheets("バーコード").Range("F" & kijunRow + 2).HorizontalAlignment = ConvertHorizontalAlignment(Range("商品名揃え")) BarCodeCreatedCount = BarCodeCreatedCount + 1 End If LoopCount = LoopCount + 1 Next j Next i |
24面なので、amazonや楽天でシールを一緒に買って使うのもありだと思います。