製造や小売りなどの現場の在庫管理で活用されているバーコードやQRコード(2次元コード)はExcel(エクセル)でも簡単に作成できます。実際に作成しながら手順をわかりやすく紹介します。

 

 デンソーウェブの公式サイトによると、バーコードとは、バーとスペースの組合せにより、数字や文字などを機械が読み取れる形で表現したものです。バーコードには数字や記号だけでなく、以下の要素も含まれています。

  • クワイエットゾーン:バーコードの両端または周囲に配される余白
  • スタート/ストップキャラクタ:データの始まりと終わりを表す文字
  • チェックデジット:バーコードのデータが正しいかをチェックする

 バーコードの種類には用途や国によってさまざまな種類があります。たとえば、スーパーやコンビニで並び、POS管理が必要な食糧品や雑貨には、日本なら「49」と「45」から始まるJAN(Japanese Article Number)コードが使われています。

 そのほかにも、次のような種類があります。種類よって数字や英字など使える種類が異なります。

  • NW-7(CODABAR)…宅配便の荷札や写真プリント用封筒などで利用
  • コード39(CODE39)…米国防総省のMIL規格で採用。FA分野などで利用
  • コード128(CODE128)…使える文字の種類が多く公共料金収納などに活用

 これに対し、QRコードとは、Quick Responseの略称で、1994年に開発した2次元コードを指します。

 小さなスペースに表示が可能、汚れ・破損に強いといった特徴があり、URLを入力せずに、読み取るだけでサイトに遷移できるため、バーコード決済やSNSの友達追加、様々な印刷物など活用が広がっています。

 無料でバーコード作成ができるサイトやツールもありますが、エクセルでも作ることができます。大きく分けて3つの手順で完了します。

 事前準備として、使っているエクセルがOffice2019またはMicrosoft365以前の場合、Microsoft Access 2016 Runtimeのダウンロードが必要となる場合があります。

  1. Microsoft BarCode Controlの選択
  2. バーコード(サンプル)の作成
  3. バーコードのプロパティで情報入力
[リボンのユーザー設定]の[メインタブ]から[開発]にチェックマークを入れる

 まず、[ファイル]>[オプション]>[リボンのユーザー設定]を選択。[メインタブ]から[開発]にチェックマークを入れてOKをクリックします。

ツールバーの[開発]>[挿入]>[コントロールの選択]

 すると、ツールバーに[開発]が表示されます。[開発]>[挿入]>[コントロールの選択]から[Microsoft Barcode Control 16.0]を選び「OK」を選択してください。

[コントロールの選択]から[Microsoft Barcode Control 16.0]を選択

 マウスポインタが十字に変化するので、クリック&ドラッグして作成場所を決めてください。

バーコード(サンプル)
バーコード上で右クリック。[Microsoft BarCode Control 16.0オブジェクト]>[プロパティ]を選択

 バーコード上で右クリックしてください。[Microsoft BarCode Control 16.0オブジェクト]>[プロパティ]を開き、[スタイル]から先ほど紹介したバーコードの種類を選択できます。選択したら[OK]でエクセルシート上に戻ってください。

バーコードを右クリックし[プロパティ]を選択すると、ダイアログボックスが表示されます。[Value]欄に英数字を直接入力できる。[Linkedcell]に参照するセルを入力することもできる

 再度、バーコード上で右クリック。[プロパティ]を選択すると、ダイアログボックスが表示されます。[Value]欄に英数字を直接入力できますし、[Linkedcell]に参照するセルを入力することもできます。

 エクセルでQRコードを作る場合も同じ手順です。

バーコードのサンプルを右クリックし[MICROSOFTBARCODECONTROL16.0のプロパティ]が出てきたら、[スタイル]>[QRコード]を選択

 バーコードのサンプルを右クリックし[MICROSOFTBARCODECONTROL16.0のプロパティ]が出てきたら、[スタイル]>[QRコード]を選択すれば、QRコードに変更できます。

  正方形に整えたい場合は、[コントロールの書式設定]>[サイズ]から高さと幅を同サイズにしてください。

 

Excel(エクセル)で一括QRコードを無料作成する方法

 

QRコードを1クリックで一括作成するエクセルマクロを作成しました。

QRコードを連続で生成してくれるので、とても便利だと思います。

エクセルファイルをダウンロードできるようにしておきましたので、よろしければご利用頂ければと思います。

 

サンプルファイルをダウンロード

 

 

1.A列にQRコードしたい文字列を入力します。

2.右側にあるボタンをクリックします。(マクロがスタートします。)

すると以下のようにQRコードが生成されます。

 

 

QRコード生成VBAソースコードの一部は以下の通りです。

ファイルをダウンロードして使用したい方は参考にして下さい。

Excelファイルのみで余計なファイルは一切必要ありません。

Sub QR削除()
    Dim pic As Shape
    With Sheet1
        For Each pic In .Shapes
            If pic.Type = msoPicture Then pic.Delete  '既存QRコードを削除
        Next pic
    End With
End Sub

 


Sub QR生成()
    Dim QR$, s$, ss$, i&
    Application.ScreenUpdating = False
    Call QR削除 '起動QRコードを削除
    With Sheet1
        For rrow = 2 To Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row
            If Range("a" & rrow) <> "" Then
            Call QRMain(Range("a" & rrow)) 'QRコード生成
            Call CreateBitmapQRCode(RGB(0, 0, 0), RGB(255, 255, 255)) '色設定
            Call QRCodeToClipboard
            .Range("b" & rrow).Select  'コピーペスト位置
            .Rows(rrow).RowHeight = 90  'QRコード格納セルのサイズ調整
            .Columns(2).ColumnWidth = 15
            .Paste  'QRコードをコピーペスト
            Application.CutCopyMode = False
            With Selection       'QRコードの大きさ・位置を設定
                .ShapeRange.Height = 80
                .ShapeRange.Width = 80
                .ShapeRange.Left = Sheet1.Range("b" & rrow).Left + (Sheet1.Range("b" & rrow).Width - .Width) / 2
                .ShapeRange.Top = Sheet1.Range("b" & rrow).Top + (Sheet1.Range("b" & rrow).Height - .Height) / 2
            End With
            Else
            End If
        Next
    End With
    Application.ScreenUpdating = True
    MsgBox "QRコードが生成されました"
End Sub

 


Sub QRExport()
    Dim ad$, m&, mc$, shp As Shape
    Dim nm$, n&, myFolder$
    Sheet1.Activate
    n = 0
    myFolder = ThisWorkbook.Path & "\QRcode\"     'フォルダ名称
    For Each shp In ActiveSheet.Shapes
        If shp.Type = 13 Then
            If Len(Dir(myFolder, vbDirectory)) = 0 Then
                MkDir myFolder
            End If
            n = n + 1
            'ad = shp.TopLeftCell.Address
            m = shp.TopLeftCell.Row
            mc = Replace(Cells(m, 1).Address, "$", "")
            nm = Format(n + 1, "00") & "-" & mc & ".jpg" 'jpgフォーマット
            shp.CopyPicture 'QR画像をコピーします。
            With ActiveSheet.ChartObjects.Add(0, 0, shp.Width, shp.Height).Chart '
                .Parent.Select
                .Paste
                .Export myFolder & nm, "JPG"
                .Parent.Delete '
            End With
            'Range(ad) = nm
        End If
    Next
    MsgBox "同じディレクトリに保存しました。"