商品コードや管理番号を一つずつバーコードにしていくのは、数が増えると本当に骨が折れます。10件くらいなら手作業でもなんとかなりますが、100件、500件となると現実的ではありません。そこで役に立つのが、Excelの「マクロ(VBA)」です。番号が並んだ表に対してマクロを一度実行するだけで、ずらりと並んだセルをまとめてバーコードに変えられます。
この記事では、Excel VBAでバーコードを一括作成する手順を、初めての方にもわかるように順を追って説明します。中心になるのは「CODE39というバーコードフォントを、VBAでセル範囲にまとめて適用する」やり方です。マクロと聞くと身構えてしまうかもしれませんが、ここで紹介するコードはコピーして貼り付ければそのまま動きます。Windows版のExcel(Office 2019以降)で確認しています。最終確認日は2026年6月です。
VBAでバーコードを一括作成する全体の流れ
先に全体像をつかんでおくと、後の手順で迷いません。やることは大きく分けて次の3つです。
| ステップ | やること |
|---|---|
| 1. フォントを入れる | CODE39のバーコードフォントをパソコンにインストールする。これがないとバーコードは表示されない(重要)。 |
| 2. マクロを貼る | Excelの開発タブからVBAエディタを開き、用意したマクロをコピーして貼り付ける。 |
| 3. 実行する | 番号が並んだセル範囲を選び、マクロを実行する。隣の列にバーコードがまとめて作られる。 |
ポイントは、バーコードの見た目そのものは「フォント」が作っているという点です。VBAは「アスタリスクを付ける」「フォントを当てる」という面倒な作業を、たくさんのセルに対して一気にやってくれる係だと考えてください。だから順番として、フォントの導入が先になります。
なぜマクロ(VBA)でまとめて作るのか
CODE39のバーコードは、本来なら1つのセルごとに「数値の前後にアスタリスク(*)を付ける」「そのセルにバーコードフォントを設定する」という2つの操作が必要です。これを数値の数だけ繰り返すのは、件数が多いほど大変になります。
VBAを使えば、この繰り返しをパソコンに任せられます。たとえば商品番号が300個あっても、表を選んでマクロを1回動かすだけで、300個ぶんのバーコードがそろいます。手作業なら半日かかる作業が数秒で終わる、というのがマクロを使う一番の理由です。在庫リストや備品管理表のように、まとまった数の番号をいっぺんにバーコード化したいときに向いています。
CODE39フォントを先にインストールする
マクロを動かす前に、CODE39のバーコードフォントをパソコンに入れておく必要があります。ここを飛ばすと、マクロを実行してもバーコードにならず、アスタリスク付きの「*12345*」という文字のまま表示されてしまいます。つまずきの大半はここです。
- インターネットで「CODE39 フォント 無料」などと検索し、配布サイトからCODE39のフォントファイル(拡張子が.ttfのもの)をダウンロードします。「Bar-Code 39」や「Libre Barcode 39」といった名前で配布されています。
- ダウンロードしたフォントファイルを右クリックし、「インストール」を選びます。
- すでにExcelを開いている場合は、一度Excelを閉じてから開き直します。フォントの一覧に追加されたフォントが反映されます。
なお、CODE39で使えるのは半角の数字(0〜9)と英大文字(A〜Z)、それに「-」「.」「スペース」など一部の記号だけです。英小文字やひらがなは扱えません。商品コードに小文字が混じっている場合は、大文字にそろえてから使ってください。
開発タブを表示してVBAエディタを開く手順
マクロを書く・貼り付けるには、まずExcelに「開発」タブを出しておきます。初期状態では隠れていることが多いので、次の手順で表示します。
- Excelを開き、「ファイル」→「オプション」をクリックします。
- 左側の「リボンのユーザー設定」を選びます。
- 右側の一覧で「開発」にチェックを入れ、「OK」をクリックします。これでリボンに「開発」タブが表示されます。
- 「開発」タブの「Visual Basic」をクリックすると、VBAエディタ(コードを書く画面)が開きます。キーボードの「Alt」を押しながら「F11」でも開けます。
バーコードを一括作成するマクロのコードと貼り付け方
ここからが本題です。下のマクロは、選んだセル範囲(A列に並んだ番号など)を順番に読み取り、その右隣のセルに「アスタリスクで囲んだ値」を入れて、CODE39フォントとサイズを設定するものです。これを実行すると、選んだぶんだけ一気にバーコードができあがります。
VBAエディタが開いたら、次の手順でコードを貼り付けます。
- VBAエディタのメニューで「挿入」→「標準モジュール」をクリックします。右側に白いコード入力欄が開きます。
- 下のコードをすべてコピーし、そのコード入力欄に貼り付けます。

貼り付けるマクロは次のとおりです。
Sub バーコードを一括作成する()
Dim c As Range
Dim フォント名 As String
' インストールしたCODE39フォントの名前に合わせて変更してください
フォント名 = "Libre Barcode 39"
' 番号が並んだセル範囲を選んでから実行します
For Each c In Selection.Cells
' 空のセルは飛ばす
If Trim(c.Value) <> "" Then
' 右隣のセルに「*値*」を入れる(CODE39のスタート/ストップ記号)
With c.Offset(0, 1)
.Value = "*" & c.Value & "*"
.Font.Name = フォント名 ' バーコードフォントを当てる
.Font.Size = 36 ' 読み取りやすい大きさ(30〜48が目安)
End With
End If
Next c
MsgBox "バーコードを作成しました。右の列をスキャナーで読み取り確認してください。"
End Sub
コードの中の「Bar-Code 39」の部分は、ご自分がインストールしたフォントの正式名称に書き換えてください。フォント名は、Excelのセルを選んでフォント選択欄をクリックすると一覧で確認できます。名前が1文字でも違うとフォントが当たらず、文字のまま表示されてしまいます。
マクロを実行してバーコードを作る手順
コードを貼り付けたら、いよいよ実行です。先に番号を並べた表を用意しておきます。たとえばA1に「商品コード」、A2から下に番号を入力しておきます。
- Excelの画面に戻り、バーコードにしたい番号が入ったセル範囲(例:A2からA20まで)をマウスでドラッグして選びます。
- 「開発」タブの「マクロ」をクリックし、一覧から「バーコードを一括作成する」を選んで「実行」をクリックします。VBAエディタでコードの中にカーソルを置いて「F5」キーを押しても実行できます。
- 選んだ範囲の右隣の列に、バーコードがまとめて表示されます。「作成しました」というメッセージが出たら完了です。

もし右隣の列にすでにデータが入っている場合は上書きされてしまうので、空いている列の左隣に番号を置くか、コードの「Offset(0, 1)」の数字を変えて出力先の列をずらしてください(たとえば「Offset(0, 2)」にすると2つ右のセルに出力されます)。
マクロ付きのブックは.xlsm形式で保存する
マクロを入れたExcelファイルは、通常の「.xlsx」形式では保存するときにマクロが消えてしまいます。次の点に注意して保存してください。
- 「ファイル」→「名前を付けて保存」を選びます。
- ファイルの種類で「Excelマクロ有効ブック(*.xlsm)」を選んで保存します。これでマクロが一緒に保存されます。
また、マクロ入りのファイルを開き直したときに、画面上部に「セキュリティの警告 マクロが無効にされました」という黄色い帯が出ることがあります。自分で作った信頼できるファイルであれば「コンテンツの有効化」をクリックすると、マクロが使えるようになります。インターネットからダウンロードしたファイルでは有効化のボタンが出ないこともあり、その場合はファイルを右クリック→プロパティ→「許可する」にチェックを入れてから開きます。
Microsoft BarCode Control(ActiveX)を使う方法との違い
VBAでバーコードを作る方法を調べると、フォントを使わずに「Microsoft BarCode Control」というActiveX部品を貼り付けるコードも見つかります。OLEObjects.Addで部品を置き、StyleプロパティでCODE39を指定するやり方です。
この方法はフォントを入れなくても画像としてバーコードを描けるという利点がありますが、肝心の「Microsoft BarCode Control」は多くのパソコンに入っていません。これはMicrosoft Accessなどに同梱される部品で、Excel単体のパソコンでは見当たらないことがほとんどです。手元にないパソコンでこの方式のマクロを動かすと、部品が見つからずエラーになります。
そのため、どのパソコンでも同じように再現できるのは、無料のフォントを入れて使う「フォント方式」のほうです。この記事でフォント方式を主にすすめているのは、こうした理由からです。
うまくいかないときの確認ポイント
マクロを実行したのにバーコードにならない、というときは、次の順に確認すると原因が見つかりやすいです。
| 症状 | 確認すること |
|---|---|
| 「*12345*」という文字のまま表示される | フォントが当たっていない。コードのフォント名がインストール名と一致しているか、フォント自体が入っているかを確認する。 |
| 縞模様にはなったがスキャナーで読めない | サイズが小さすぎる可能性がある。フォントサイズを30〜48ポイント程度に上げ、印刷は高品質設定で行う。 |
| 一部のコードだけ読めない | 英小文字・全角文字・対応外の記号が混じっていないか確認する。CODE39は半角の数字と英大文字が基本。 |
| 実行するとエラーが出る | BarCode Control方式のコードを使っていないか確認する。フォント方式のコード(この記事のもの)に置き換える。 |
作り終えたら、必ず手元のバーコードリーダーやスマホのスキャンアプリで実際に読み取れるか試してから本番に使ってください。画面では正しく見えても、印刷の濃さやサイズで読み取れないことがあります。
Excel VBAでのバーコード一括作成でよくある質問
マクロを使わずにバーコードを一括で作る方法はありますか
あります。番号の隣のセルに「=”*”&A2&”*”」という式を入れて下までコピーし、その列をまとめて選んでCODE39フォントに変えるだけでも一括作成できます。件数が少なければこちらでも十分です。マクロは件数が多い・繰り返し作業がある場合に便利です。
作ったバーコードを別のパソコンに渡しても表示されますか
渡す相手のパソコンに同じCODE39フォントが入っていないと、普通の文字に戻ってしまいます。確実に渡すには、PDFに書き出すか、印刷して渡すのが安全です。PDFならフォントが埋め込まれ、バーコードのまま開けます。
QRコードもVBAで一括作成できますか
CODE39フォントの方式はQRコードには使えません。QRコードを一括で作る場合は、Microsoft 365の「Python in Excel」や専用のアドインを使う方法が一般的です。本記事のフォント方式は、横一列の縞模様タイプ(CODE39)のバーコード向けです。
マクロは安全ですか。怖いのですが
この記事のマクロは、選んだセルの隣にバーコード用の文字を作ってフォントを変えるだけの、シンプルな処理です。ファイルを消したり外部に送ったりする命令は含まれていません。心配な場合は、まずコピーした練習用のファイルで試してから本番に使うと安心です。
番号が多いほどマクロでまとめて作るのが近道(まとめ)
Excel VBAでバーコードを一括作成するときは、「CODE39フォントを先に入れる」「番号の隣に*で囲んだ値を作り、フォントを当てるマクロを実行する」という流れが基本です。見た目はフォントが作り、面倒な繰り返しはマクロが引き受けてくれます。数件なら式のコピーでも足りますが、数十件・数百件とまとまった番号を扱うなら、マクロにした方がずっと速く・正確に仕上がります。作ったあとは必ずスキャナーで読み取り確認をしてから運用してください。
「フォントを入れてもうまく表示されない」「自分の管理表に合わせてマクロを少し直したい」など、手順のなかで詰まってしまったときは、画面を見ながら一緒に確認することもできます。よろしければLINEから気軽に声をかけてください()。
uri uri
最終確認日:2026年6月


コメント