ExcelでQRコードを複数作成する方法まとめ|関数・VBA・アドインを比較解説!

  • 2025年4月19日
  • 2025年5月31日
  • アイデア
  • 134view
  • 0件
ExcelでQRコードを複数作成する方法まとめ|関数・VBA・アドインを比較解説!

エクセルでQRコードを作成できることをご存じでしょうか?
しかも、ちょっとした工夫をすることで、複数のQRコードをまとめて自動で作成することも可能なんです。

名簿や商品コード、アンケートのURLなど、エクセル上に並んだデータからQRコードを一つずつ作るのはとても手間がかかりますよね。そんなときに便利なのが、関数やマクロ(VBA)を活用した自動生成の方法です。

本記事では、以下のような疑問やお悩みにお応えします。

  • 複数のセルの内容をQRコードに一括変換したい

  • 関数とVBA、それぞれどんな違いがあるの?

  • 一番簡単で失敗しにくい方法を知りたい

  • 用途に合った方法を選ぶにはどうしたらいい?

エクセル初心者の方でもわかりやすいように、関数で作る方法/VBAを使った一括生成/アドインを使う方法の違いを比較しながらご紹介します。
作業内容や目的に応じた最適な方法を見つける参考になれば幸いです。

ExcelでQRコードを複数作成する3つの方法

関数(QuickChart)を使ってセル内にQRコードを表示する

一番手軽にQRコードを複数作成したい場合におすすめなのが、「QuickChart」という無料のWebサービスを利用した方法です。
Excel関数と組み合わせることで、セルの値をもとにQRコード画像を自動生成できます。


QuickChartとは?

QuickChartは、URLの中に文字列やパラメータを埋め込むことで、QRコードやグラフなどを画像として生成できるWebサービスです。
特別なインストールは不要で、Excelの関数だけでQRコードを作成できるため、初心者でもすぐに使えるのが魅力です。


使用する関数の書き方(基本形)

=IMAGE("https://quickchart.io/qr?text=" & ENCODEURL(A2) & "&size=150")
  • A2 … QRコードにしたい文字列やURLが入力されたセル

  • ENCODEURL() … 日本語や記号をURL形式に変換する関数(※Excel 2013以降対応)

  • IMAGE() … 指定したURLから画像をセル内に表示する関数(Excel 365やWeb版で利用可能)

この関数を複数行にコピーするだけで、それぞれの行に対応したQRコードが自動的に表示されます。

関数(QuickChart)を使ってセル内にQRコードを表示する

 QRコードはセルの大きさに左右されます。
QRコードが小さく感じる場合は、行の高さを調整しましょう。
関数で読み込んでいるため、セルの真ん中に配置したい場合はフォントと同様に中央ぞろえのボタンをクリックするとセルの真ん中に配置することができます。

QRコードはセルの大きさに左右されます。


メリットと注意点

【メリット】

  • 数式だけでQRコードを自動生成できる

  • セルの内容を変更すれば、QRコードも自動で更新される

  • アドインやVBAが不要で、導入が簡単

【注意点】

  • QRコード画像はWeb上から都度取得されるため、大量に使うと表示が遅くなったり重くなる可能性があります

  • 作成されたQRコードは「画像ファイル」ではなく、セル内に埋め込まれた外部画像です
     → 印刷や他のファイルで使いたい場合は、スクリーンショットやVBAなどで画像化する必要があります


関数によるQRコード生成は「とりあえず今すぐ複数作ってみたい!」という方にぴったりの方法です。
印刷や共有などに使う場合は、必要に応じて画像として保存する手間も考慮して選びましょう。

ExcelでQRコードを複数作成する3つの方法

QR4Officeアドインで1件ずつQRコードを作成する方法

Excelでは、「QR4Office」というMicrosoft公式のアドインを利用することで、セルの値をもとにQRコードを作成することも可能です。
アドインの操作はシンプルで、テキストやURLを入力し、「Insert」ボタンを押すだけでQRコードを画像として挿入できます。
詳しくは以下の記事をご参考ください。QR4Officeアドインで1件ずつQRコードを作成する


少数のQRコード作成には便利

QR4Officeは以下のような場面で特に活躍します。

  • 名刺やチラシに1〜2件だけQRコードを入れたい

  • デザインや色を細かく調整したい

  • 作成したQRコードを画像オブジェクトとして保存・移動・印刷したい

ただし、一度に複数のQRコードを一括生成する機能はないため、数十件以上のQRコードを作りたい場合は他の方法を検討する方が効率的です。


詳しくはこちらの記事へ

QR4Officeを使ったQRコードの作成手順については、別記事で詳しくご紹介しています。
初めて使う方はこちらもぜひご覧ください。

関連記事:
エクセルでQRコードを作成する方法まとめ|画像保存や貼り付けの手順も解説!


このように、QR4Officeは手動操作でも確実に画像を作れる点が強みです。
「見た目を調整したい」「資料に使う画像が欲しい」といったニーズに適しています。

VBAを使って複数のQRコード画像を自動挿入する【QuickChart対応】

大量のQRコードを効率よく作成したい場合には、VBA(マクロ)を使って自動化する方法が非常に便利です。
特に商品リストや名簿、棚卸し表など、複数のデータをQRコード化して一括でExcelシートに貼り付けたいときに活躍します。
※VBAについての初期設定については以下の記事をご参考ください。

Excelでマクロを作るなら最初にやるべきVBAの基本設定とは?


 Google Chart API終了にともなう注意点

以前はGoogle Chart APIを使ってQRコード画像を取得する方法が一般的でしたが、2024年にサービス提供が終了したため、現在はQuickChart.ioという外部サービスを使うのが主流となっています。

QuickChartは無料かつ登録不要で、安定したQRコード生成サービスとして人気があります。


サンプルVBAコード(QuickChart版)

以下のコードは、A列のセル値をQRコードに変換し、B列に画像として貼り付ける例です。
QuickChartから画像データを取得し、一時ファイルとして保存した後、Excelシートに挿入する構成となっています。

Sub QRコード一括生成_QuickChart版()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim cellValue As String
    Dim qrURL As String
    Dim filePath As String
    Dim fileNum As Integer
    Dim imgData() As Byte
    Dim http As Object


    Set ws = ThisWorkbook.Sheets("Sheet1")
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row


    For i = 2 To lastRow
        cellValue = ws.Cells(i, 1).Value


        If cellValue <> "" Then
            ' QuickChart APIを使用したQRコードURL
            qrURL = "https://quickchart.io/qr?text=" & Application.WorksheetFunction.EncodeURL(cellValue) & "&size=150"


            ' HTTP通信で画像データを取得
            Set http = CreateObject("MSXML2.XMLHTTP")
            http.Open "GET", qrURL, False
            http.Send


            If http.Status = 200 Then
                imgData = http.responseBody
                filePath = Environ$("TEMP") & "\qr_temp_" & i & ".png"
                fileNum = FreeFile
                Open filePath For Binary As #fileNum
                Put #fileNum, , imgData
                Close #fileNum


                ' 保存した画像を貼り付け
                With ws.Pictures.Insert(filePath)
                    .Left = ws.Cells(i, 2).Left + 10 'セルの左端から10point
                    .Top = ws.Cells(i, 2).Top + 5 'セルの上端から5point
                    .Width = 70  '高さ70
                    .Height = 70  '横幅70
                End With
            Else
                MsgBox "QRコード取得に失敗しました(行 " & i & ")", vbExclamation
            End If
        End If
    Next i
End Sub

ポイント解説

  • APIのURLを組み立ててQRコード画像を取得

  • 取得した画像は一時ファイルに保存し、Excelに貼り付け

  • .Left / .Top の数値を調整することで、画像の表示位置を微調整可能です
    ※41行目 ’ 保存した画像を貼り付け コメント以降の箇所を調整します。
    VBAを使って複数のQRコード画像を自動挿入する


この方法が向いているケース

  • 商品ラベルや管理表に大量のQRコードを一括で挿入したいとき

  • 挿入したQRコードを印刷・保存・他の資料に貼り付けたいとき

  • QRコードの配置やサイズをVBAで自由にカスタマイズしたいとき


VBAを使った方法は初期設定こそ少し手間がかかりますが、一度仕組みを整えてしまえば、繰り返し利用や他ファイルへの応用も可能な強力な手段です。
業務での効率化を目指す方には、ぜひおすすめしたい方法のひとつです。

用途別!QRコード複数作成方法の選び方と注意点

保存・印刷・共有に使うならどれ?

QRコードを作成したあと、印刷して配布したい・WordやPowerPointに貼り付けたい・画像として保存しておきたいといったニーズも多いのではないでしょうか。
ここでは、「作ったQRコードをどう使うか」という観点から、各方法の使い勝手を比較します。


セル内に表示される関数(QuickChart)の場合

  • QRコードはWeb画像としてセル内に表示されているだけなので、直接保存や印刷には工夫が必要です

  • 他の資料に貼り付けたい場合は、以下の方法が考えられます:

    • スクリーンショット → トリミング → 画像として保存

    • IMAGE()関数のURL部分を取り出して、ブラウザで開いて右クリック保存

  • 大量に表示するとファイルが重くなることもあるため、用途に応じて一時的に画像化するのが現実的です


VBAで作成したQRコード画像の場合

  • VBAで挿入したQRコードは**「図形(画像)」として貼り付けられるため、そのまま保存や印刷に対応**できます

  • 他の資料への貼り付けや、サイズ・位置の調整も自由自在

  • 作成直後の画像を右クリックして「図として保存」も可能なので、再利用しやすいのもメリットです


アドイン(QR4Office)の場合

  • 作成されるQRコードは最初から画像として挿入されるため、見た目や配置を整えてそのまま資料化できます

  • サイズや色のカスタマイズができるので、印刷向けの美しいQRコードを作りたいときに最適です

  • 「図として保存」→「Wordに貼り付け」→「印刷」などの流れもスムーズです


用途ごとのおすすめ

目的 おすすめ方法
作ったQRコードを画像として保存・印刷したい ✅ VBA or QR4Office
QRコードを自動更新しながら一覧表に載せたい ✅ 関数(QuickChart)
Word・PowerPointなどで資料として使いたい ✅ VBA or QR4Office
ファイルを軽く保ちたい/一時的に見たいだけ ✅ 関数(QuickChart)

用途によって最適な方法は異なりますが、印刷・保存・共有のしやすさを重視する場合には、画像として扱えるVBAまたはアドインがおすすめです。
逆に、見た目にこだわらず手軽に一覧化したいだけであれば、関数による方法でも十分活用できます。

日本語をQRコードに含めたいときの注意点

QRコードに日本語(氏名・商品名・案内文など)を含めたい場合、「文字化けしないか?」「スマホで読めるのか?」と心配になる方も多いと思います。

結論からいうと、QuickChartやQR4Officeでは日本語も問題なくQRコード化できます。ただし、関数やVBAを使う際は**エンコード処理(URLエンコード)**に注意が必要です。


関数で日本語をQRコードにする場合

QuickChartでは、URLに含めるテキストはURL形式(UTF-8)に変換する必要があります。
そのため、エクセルの ENCODEURL() 関数を使って日本語を変換すれば、正しく表示されます。

=IMAGE("https://quickchart.io/qr?text=" & ENCODEURL("こんにちは"))

このように記述することで、「こんにちは」という日本語もQRコードに変換され、スマホでも正しく読み取れます。
※個人的に検証した際、ENCODEURL()なしでも文字化けすることはありませんでした。
必要に応じてENCODEURL()を組み込む形でもよいかもしれません。


VBAで日本語を扱う場合

VBAを使うときも、同様に Application.WorksheetFunction.EncodeURL() を使えばOKです。
たとえば、以下のようにURLを組み立てます:

qrURL = "https://quickchart.io/qr?text=" & Application.WorksheetFunction.EncodeURL(cellValue)

これにより、日本語の内容を含むQRコードを正しく取得でき、画像として貼り付けられます。

↓エンコード有の場合です。文字化けすることなく読み取りできました。
VBAで日本語を扱う場合、文字化け防止の処置が必要

↓エンコード無で作成した場合。文字化けして日本語として読み取りできませんでした。

エンコード無で作成した場合。文字化けして日本語として読み取りできませんでした。


注意点:サイズと読み取り精度

日本語を含む場合、QRコード全体の情報量が増えるため、画像が小さすぎると読み取りにくくなることがあります。
そのため、次のような対策がおすすめです:

  • QRコードサイズを「150×150」以上に設定する

  • 複雑な日本語や長文を含めるときは、サイズやエラー修正率の調整を検討する

  • 読み取りテストを行い、スマホで確実に読み取れるか確認する


QRコードに日本語を対応させるには?

  • QuickChartやQR4Officeでは日本語対応は基本的に問題なし

  • 関数やVBAを使うときは ENCODEURL() を忘れずに

  • 日本語を含めるときはサイズ調整で読み取りやすさを確保するのがコツです

まとめ:目的に応じて最適な方法を選ぼう

エクセルでQRコードを複数作成する方法には、「関数」「VBA」「アドイン」という3つの選択肢があります。
それぞれにメリットと注意点があるため、用途や操作スキルに応じて適切な方法を選ぶことが大切です。

  • 関数(QuickChart):とにかく手軽。一覧表示や簡易的な用途におすすめ

  • VBA:大量のQRコードを一括生成・保存したいときに最適。業務効率化にも

  • QR4Officeアドイン:少量のQRコードを見栄えよく作りたいときに便利

目的に合わせて方法を組み合わせることで、エクセルでのQRコード活用がより効果的になります。