【Excel】エクセルでQRコードを作成する方法(関数・マクロ・複数セル)
Excelで商品番号、URL、連絡先などを管理していると、セルの文字列からQRコードを作成したい場面があります。
関数だけで画像として表示する方法、VBAマクロで図形を配置する方法、複数セルへ一括で作成する方法を知っておくと、案内表や在庫ラベル、名刺データの作業を効率化できます。
この記事では、ExcelでQRコードを作成する手順と、読み取りやすいサイズに整えるポイントを順に解説します。
QRコード作成で押さえたいポイントです。
・IMAGE関数では画像URLをセル内へ表示できます。
・VBAではセルの値を読み、複数行のQRコードを一括生成できます。
・先頭行を見出しにした表なら、2行目から数式やマクロを適用します。
なお、社外向けのQRコードには公開前のURLや個人情報を含めないよう確認しましょう。
ExcelでQRコードを作成する方法1【IMAGE関数と生成用URL】
それではまず、IMAGE関数とQRコード生成用URLを組み合わせ、セルの内容をQRコードとして表示する方法について解説していきます。
| A列 | B列 | C列 |
|---|---|---|
| 名称 | QR化するURL | QRコード |
| 商品案内 | https://example.com/item-a | IMAGE関数で表示 |
IMAGE関数に渡すURLの組み立て
IMAGE関数を使えるExcelでは、外部画像のURLをセル内に表示できます。
QRコードを画像で返すWebサービスのURLへ、B列の文字列を渡す考え方です。
=IMAGE(“https://api.qrserver.com/v1/create-qr-code/?size=180×180&data=”&ENCODEURL(B2),”QRコード”,0,180,180)
この式では、B2に入れたURLをENCODEURL関数で安全な文字列へ変換し、QRコード画像の取得先に連結します。
URL内の日本語、空白、記号をそのまま連結すると、画像が表示されない原因になります。そのため、データ部分にはENCODEURL関数を入れるのが基本です。
セルサイズが小さいままだと画像が縮小されるため、C列の幅と2行目の高さも先に広げておきましょう。

外部サービスを使う方式では、B列の値がサービス側へ送信される点にも注意が必要です。
【操作のポイント】社内限定の情報や未公開のURLをQR化する前に、利用する生成サービスの取り扱い方針を確認します。
複数セルへ数式をコピーする操作
C2に数式を入力してQRコードが表示されたら、下方向へオートフィルします。
サンプルでは1行目がヘッダーなので、数式を入れる最初のセルはC2です。
数式内のB2は相対参照のため、C3へコピーするとB3、C4へコピーするとB4を自動的に参照します。
コピー前にB列の空欄を確認すると、不要な空QRコードの発生を防げます。

データが数百行ある場合は、C2右下のフィルハンドルをダブルクリックすると、隣接するB列の連続データに合わせて数式をコピーできます。
テーブルとして整形している範囲なら、数式を1件入力するだけで計算列として自動展開される場合もあります。
【操作のポイント】オートフィル後は先頭、中間、最終行のQRコードをスマートフォンで読み取り、参照先がずれていないか検証します。
IMAGE関数が使えない場合の確認
IMAGE関数はMicrosoft 365などの対応環境で利用できる機能です。
数式を入力しても関数名のエラーになる場合は、利用中のExcelの更新状況や契約プランを確認しましょう。
また、ネットワーク制限により外部画像を読み込めない環境では、式が正しくても画像が取得できないことがあります。
セルに画像が見えないときは、数式そのもの、インターネット接続、外部コンテンツの制限を分けて確認することが近道です。
IMAGE関数は、QRコードをセルと一緒に並べ替えやフィルターで扱いやすい点が利点です。
一方で、画像取得先への接続に依存するため、完全にオフラインで運用する帳票には別の方法を検討します。
【操作のポイント】配布先のExcelでも表示させたい場合は、利用バージョンとネットワーク条件を事前にそろえます。
QRコード用の文字列とENCODEURL関数
続いては、読み取り先の文字列を整え、URLや日本語を正しくQRコードへ渡す設定を確認していきます。
| A列 | B列 | C列 |
|---|---|---|
| ID | 表示内容 | QR用文字列 |
| A001 | 東京都 千代田区 | ENCODEURLで変換 |
URLとテキストの違い

QRコードに格納できるものはWebサイトのURLだけではありません。
短い案内文、管理番号、メールアドレス、電話番号なども文字列として扱えます。
ただし、スマートフォンで読み取ったあとにWebページを開かせたい場合は、httpsから始まる完全なURLをB列へ入れる必要があります。
wwwだけの省略形ではなく、プロトコルを含めたURLにすると読み取り後の動作が安定します。
文字数が増えるほどQRコードの点は細かくなり、印刷時の読み取りにくさにつながります。
長い説明文を直接入れるより、必要なら案内ページへ誘導する短いURLを使う方法が実用的です。
【操作のポイント】QRコードへ埋め込む文字列は、読み取った人が次に行う操作から逆算して短く設計します。
ENCODEURL関数の役割

ENCODEURL関数は、URLのパラメーターとして渡せない文字を変換する関数です。
たとえば空白や日本語、アンパサンドなどが含まれるデータをそのまま生成用URLに足すと、途中でURLが切れたように解釈されることがあります。
=ENCODEURL(B2)
この数式の結果を直接見ると、通常とは異なる記号列に見えるかもしれません。
これは異常ではなく、Web上で文字を安全に送るための形式です。
QRコードとして読み取られる内容は変換前のB2の文字列なので、利用者には符号化された文字列が表示されるわけではありません。
【操作のポイント】QR化したい文字列を生成URLに連結するときだけENCODEURL関数を使い、元データのB列は読みやすい通常表記で残します。
空欄時に画像を出さないIF関数
一覧の途中に空欄行がある場合は、IF関数を組み合わせると見た目を整えられます。
=IF(B2=””,””,IMAGE(“https://api.qrserver.com/v1/create-qr-code/?size=180×180&data=”&ENCODEURL(B2),”QRコード”,0,180,180))
B2が空なら空文字を返し、値がある行だけQRコード画像を表示する式です。
名簿や商品リストを更新するたびに数式をコピーする場合でも、空行へ余計な画像を表示せずに済みます。
IF関数の判定は、QRコード生成の前に置くことが重要です。
データを追加する予定がある表は、Excelのテーブル機能と組み合わせると管理しやすくなります。
行が増えた際にQRコード用の数式も追従しやすく、印刷範囲の確認も行いやすくなります。
【操作のポイント】空欄を含む一覧では、IF関数で表示条件を付けてから印刷レイアウトを調整します。
VBAマクロによる複数セルのQRコード作成
続いては、VBAマクロで複数セルの文字列からQRコードを作成し、ワークシートへ一括配置する方法を確認していきます。
| A列 | B列 | C列 |
|---|---|---|
| 商品コード | URL | QR画像 |
| P001 | https://example.com/p001 | マクロで配置 |
| A | B | C | |
|---|---|---|---|
| 1 | 商品コード | URL | QR画像 |
| 2 | P001 | https://example.com/p001 | 画像を配置 |
| 3 | P002 | https://example.com/p002 |
VBAを保存できるファイル形式
VBAを使う前に、ブックをExcelマクロ有効ブックとして保存します。
通常のxlsx形式では、保存時にVBAプロジェクトが削除されるため注意が必要です。
ファイルの種類でExcelマクロ有効ブックを選び、拡張子がxlsmになっていることを確認しましょう。
マクロを含むファイルは、信頼できる場所へ保存し、送付先にも内容を説明して扱うことが大切です。
開発タブがリボンにない場合は、ファイル、オプション、リボンのユーザー設定から開発へチェックを入れると表示できます。
【操作のポイント】最初にxlsm形式で保存しておくと、コード作成後の保存忘れを防げます。
QR画像を配置するVBAコード
Altキーを押しながらF11キーを押してVisual Basic Editorを開き、挿入から標準モジュールを追加します。
次のコードは、B列の2行目から最終行までを読み、C列の該当セルへQRコード画像を置く例です。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Sub CreateQRCodes() Dim ws As Worksheet Dim lastRow As Long Dim r As Long Dim qrUrl As String Dim targetCell As Range Set ws = ActiveSheet lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row For r = 2 To lastRow If ws.Cells(r, "B").Value <> "" Then Set targetCell = ws.Cells(r, "C") qrUrl = "https://api.qrserver.com/v1/create-qr-code/?size=180x180&data=" & _ WorksheetFunction.EncodeURL(ws.Cells(r, "B").Value) ws.Shapes.AddPicture qrUrl, msoFalse, msoTrue, _ targetCell.Left + 2, targetCell.Top + 2, _ targetCell.Width - 4, targetCell.Height - 4 End If Next r End Sub |
このコードでは、最終データ行をB列から取得し、1行目の見出しを避けて2行目から処理します。
targetCell.LeftとtargetCell.Topは、C列のセル左上の座標です。
セルの幅と高さから少し引いたサイズで画像を置くため、罫線との重なりを抑えられます。
環境によってはURLから直接画像を追加する処理が制限されることがあります。
社内ネットワークの制限がある場合は、QR画像を一度保存してから挿入する方式へ変更する必要があるかもしれません。
【操作のポイント】本番データへ実行する前に、数行だけコピーしたテスト用シートで画像の位置と読み取り結果を確認します。
マクロ実行前の画像削除と再作成
同じシートでマクロを何度も実行すると、前回のQRコード画像の上に新しい画像が重なることがあります。
更新用のマクロでは、C列にある既存画像を削除してから作り直す処理を加えると管理しやすくなります。
For Each shp In ws.Shapes
If Not Intersect(shp.TopLeftCell, ws.Columns(“C”)) Is Nothing Then shp.Delete
Next shp
この処理は、画像以外の図形がC列にある場合にも削除対象となる可能性があります。
削除処理を使うときは、QRコード専用のシートまたは専用列を用意すると安全です。
更新のたびにURLを変更する一覧では、古いQRコードが残ると誤案内につながります。
削除、再作成、読み取り確認を一連の作業にしておくと、帳票の信頼性を保ちやすくなります。
【操作のポイント】QRコードの画像には名前を付けるなど、削除する対象を限定できる設計にすると誤削除を防げます。
複数セルのオートフィルと一括作成
続いては、複数セルのQRコードを効率よく増やすためのオートフィル、一括処理、印刷時の整え方を確認していきます。
| A列 | B列 | C列 |
|---|---|---|
| 管理番号 | 読み取り先 | QRコード |
| 001 | https://example.com/001 | C2から下へ展開 |
数式コピー前の列幅と行高
QRコードをセル内に表示する場合は、数式をコピーする前にC列の幅と行の高さを決めます。
幅だけを広げても行高が小さいと正方形がつぶれ、読み取りにくい画像になることがあります。
印刷する用紙サイズを想定し、画面上で正方形に近い大きさになるよう調整しましょう。
QRコードは小さすぎると読み取れないため、実際に使うスマートフォンで印刷後のサイズを確認することが重要です。
セル結合は並べ替えやフィルターと相性がよくないため、一覧表では列幅と行高で見た目を整える方法が向いています。
【操作のポイント】先に1件だけ印刷して読み取り、十分な余白とサイズを確認してから全件を作成します。
テーブル機能による追加行への対応
データ範囲をテーブルに変換しておくと、新しい行を追加した際にQRコード用の数式を引き継ぎやすくなります。
範囲内のセルを選択し、挿入タブからテーブルを選び、先頭行をテーブルの見出しとして使用する設定を確認します。
数式列にIMAGE関数を入力したあと、データを追加すると同じ計算列として扱われることがあります。
データ件数が増減するリストでは、固定範囲への数式コピーよりテーブル化のほうが保守しやすい運用です。
テーブル名を付けると、VBA側でも処理対象を明確にしやすくなります。
ただし、画像を図形として配置するマクロでは、行の並べ替え後に位置を確認する運用も必要です。
【操作のポイント】元データ、QR用の文字列、QRコードの列を分け、列名をわかりやすくします。
並べ替えとフィルター時の注意
IMAGE関数で表示するQRコードはセル内容として扱いやすく、データの並べ替えやフィルターに追従しやすい特徴があります。
一方、VBAで挿入したQRコードは図形オブジェクトであり、セルの移動と完全に同じ挙動にならない場合があります。
図形の書式設定で、セルに合わせて移動やサイズ変更を行う設定を確認しておくとよいでしょう。
図形方式で一覧を並べ替えた後は、QRコードとURLの対応が正しいか必ず抜き取り確認します。
フィルターで非表示にした行の画像が見える場合もあるため、配布用の一覧では画像の挙動を実データで試すことが欠かせません。
【操作のポイント】頻繁に並べ替える一覧では、セル内画像として扱えるIMAGE関数を優先すると管理負担を抑えられます。
QRコードの印刷設定と読み取り確認
続いては、作成したQRコードを紙やラベルに印刷するときの設定と、公開前の検証手順を確認していきます。
| A列 | B列 | C列 |
|---|---|---|
| 確認項目 | 確認内容 | 結果 |
| 読み取り先 | URLが正しいか | 確認済み |
余白と拡大縮小の調整
ページレイアウトでは、印刷範囲、余白、拡大縮小を確認します。
横幅を1ページに収める設定は便利ですが、表の列数が多いとQRコードまで小さく縮小されることがあります。
一覧を無理に1枚へ収めず、横向き用紙や複数ページを選ぶ判断も必要です。
印刷プレビューでQRコードの点が判別できないほど小さく見える場合は、縮小設定を見直します。
【操作のポイント】印刷プレビューだけで判断せず、実際に出力した紙を読み取って確かめます。
印刷品質と背景色
QRコードは黒い点と白い余白のコントラストによって読み取られます。
背景に濃い色や模様を置くと認識しにくくなるため、周囲には白い余白を確保しましょう。
プリンターのインク不足、にじみ、細かすぎる印刷も失敗の原因になります。
小さなラベルに印刷する場合ほど、生成サイズと印刷倍率を実機で検証することが大切です。
Excelの罫線をQRコードの近くへ密集させると、読み取りアプリが余計な線を認識する可能性があります。
【操作のポイント】QRコードの周囲には罫線や文字を詰め込みすぎず、白い余白を残します。
公開前の読み取りテスト
作成後は、少なくとも別のスマートフォンや別の読み取りアプリでも確認します。
QRコードを読み取れたとしても、リンク先が404エラーになったり、古いページへ飛んだりするケースがあります。
URLの変更があり得る案内では、印刷前にリンク先の公開状態とスマートフォン表示も確認しましょう。
QRコードの品質確認は、画像の見た目ではなく読み取り後に正しい内容へ到達できるかで判断します。
管理番号をQRコード化する場合は、読み取った文字列とExcelの元データを照合できる列を残しておくと、検品にも活用できます。
【操作のポイント】印刷前、印刷直後、配布直前の三段階で読み取り確認を行うと、リンク間違いを見つけやすくなります。
QRコード作成時のセキュリティと運用
続いては、外部サービスやマクロを利用してQRコードを作成する際に押さえたいセキュリティと継続運用の考え方を確認していきます。
| A列 | B列 | C列 |
|---|---|---|
| 対象 | 注意点 | 対応 |
| 外部生成先 | 文字列の送信 | 利用規約を確認 |
外部QRコード生成サービスの扱い
IMAGE関数やVBAで外部のQRコード生成サービスを利用する場合、生成対象の文字列が通信されます。
公開済みのURLであれば問題が小さい場合でも、顧客情報、社内文書の場所、認証情報などを含めるべきではありません。
QRコード化する値を外部へ送信してよいかは、社内ルールとサービスの利用条件に沿って判断します。
利用停止や仕様変更に備え、QRコードを作成した日、利用した方式、元データの場所を管理しておくと後の見直しに役立ちます。
【操作のポイント】機密性がある文字列は、承認済みの社内ツールやオフラインの生成方法を検討します。
VBAマクロの安全な配布
マクロ有効ブックを受け取った人の環境では、セキュリティ設定により実行がブロックされることがあります。
マクロの目的、実行する操作、対象シートを説明し、信頼できる配布経路を使うことが重要です。
不明な送信者から届いたxlsmファイルは開かず、マクロを有効化しないことが基本です。
便利な自動化ほど、実行者が内容を把握できるようにシンプルな構造と説明を用意します。
【操作のポイント】配布用ブックには、マクロが何をするかを説明したシートを用意すると利用者の不安を減らせます。
リンク切れの定期点検
QRコードは一度印刷すると、リンク先を変更しても紙面上の内容は更新されません。
キャンペーンページや期間限定の案内をQRコード化する場合は、終了後の遷移先もあらかじめ考えておきましょう。
定期的に一覧を開き、B列のURLと読み取り結果を照合する担当や時期を決めると、リンク切れを放置しにくくなります。
長期運用するQRコードでは、作成作業よりもリンク先を保守する仕組みが重要です。
【操作のポイント】公開済みのQRコードは、作成日と確認日をExcelの別列に記録して点検対象を明確にします。
まとめ エクセルでQRコードを作成する方法(複数セル・マクロ・関数)
ExcelでQRコードを作成する方法は、対応環境ならIMAGE関数を使う方法が手軽です。
B列に読み取り先の文字列を入れ、C2へIMAGE関数とENCODEURL関数を組み合わせた数式を設定すれば、複数セルにもオートフィルで展開できます。
画像をセルではなく図形として配置したい場合や、一括処理を行いたい場合には、VBAマクロが役立ちます。
ただし、マクロ有効ブックはxlsm形式で保存し、既存画像の重なりや並べ替え後の位置ずれに注意しましょう。
印刷ではQRコードを小さくしすぎず、白い余白を確保して実際のスマートフォンで読み取ることが大切です。
関数方式は表の更新や並べ替えに向きます。
マクロ方式は画像配置を細かく制御したい帳票に向きます。
どちらの方法でも、URLの正確さ、外部サービスへの送信内容、印刷後の読み取り確認を徹底しましょう。
用途と利用環境に合う方法を選び、正しい情報へ案内できるQRコード一覧を作成していきましょう。