QRコードを一括で作る方法。
CSVから何百件でもまとめて。
QRコードを1つ作るサイトはいくらでもあります。困るのは、300件を1つずつ作らなければならなくなったときです。このページでは、手元のExcelやWord、無料のツール、短いスクリプトの3通りで、まとめて作る方法を書きます。どれも実際に手順まで書きます。そのうえで、作ったあとに必ずぶつかる2つの壁にも触れます。
最終更新:2026年9月11日 / みちびきworks(ダレヨミ運営)
先に、選び方だけ
| 紙に印刷したい はがき・チラシ・封筒 | Wordの差し込み印刷が最短です。画像ファイルを作らずに、宛先ごとのQRが載った印刷物が直接できます(下の「方法2」) |
| 画像ファイルが欲しい Webや資料で使う | オンラインの一括作成ツール。CSVを入れてZIPで受け取る形です(「方法1」) |
| 毎月くり返す 件数も多い | 短いスクリプトを1本書いておくのが結局いちばん楽です(「方法3」) |
| 誰が読んだかも 知りたい | 上の3つでは分かりません。理由と、その場合どうするかは最後の章に書きました |
方法1 オンラインの一括作成ツール
いちばん手軽です。URLを1行ずつ並べたCSVやExcelを読み込ませると、QRの画像をまとめて作り、ZIPで返してくれます。ファイル名を指定できるものが多いので、「顧客番号.png」の形で受け取れば、あとの作業が楽になります。
| 手順 | A列にQRに入れる文字列(URLなど)、B列にファイル名を入れた表を用意する → ツールに読み込ませる → 色や大きさを決める → ZIPでまとめてダウンロード |
| 費用 | 無料のものが多いですが、無料で作れる件数に上限があるのがふつうです(数枚まで、数百枚まで、など)。件数の上限は必ず先に確認してください |
| 注意 | QRに入れる文字列をそのツールに渡すことになります。顧客ごとのURLに個人情報が含まれる作りにしている場合は、渡す前に考えてください。ブラウザの中だけで処理する(サーバーに送らない)と明記しているツールもあります |
この方法の弱点は、画像が手に入るだけだという点です。300件のPNGができても、それを300枚のはがきに1枚ずつ貼り込む作業が残ります。紙に印刷するのが目的なら、次の方法2のほうが速いです。
方法2 Wordの差し込み印刷で、直接 紙にする
あまり知られていませんが、Wordには DisplayBarcode というフィールドがあり、QRコードを作れます。Microsoftの正式な機能で、アドインは要りません。これを差し込み印刷と組み合わせると、画像ファイルを1枚も作らずに、宛先ごとにQRの違う印刷物ができます。
| 1 | Excelで名簿を作る。QRに入れるURLの列を用意しておく(列名は url など分かりやすく) |
| 2 | Wordで[差し込み文書]→[宛先の選択]→[既存のリストを使用]で、そのExcelを選ぶ |
| 3 | QRを置きたい場所で Ctrl + F9 を押す。{ } という灰色の中かっこが出る |
| 4 | その中に DISPLAYBARCODE と打ち、続けてもう一度 Ctrl + F9 を押して内側にかっこを作り、MERGEFIELD url と入れる。最後にかっこの外へ出て \q と付ける (できあがりの形){ DISPLAYBARCODE { MERGEFIELD url } QR \q 3 } |
| 5 | F9 で更新すると、1件目のQRが表示される。[結果のプレビュー]の矢印で送ると、1件ずつQRが変わることを確認できる |
| 6 | [完了と差し込み]→[文書の印刷]、またはPDFに保存 |
※ \q 3 の数字は誤り訂正のレベルです。0〜3で、大きいほど汚れやかすれに強くなりますが、同じ情報量でもQRの模様が細かくなります。紙に印刷するなら高め(2〜3)が無難です。かっこは手で打った { } では動きません。必ず Ctrl + F9 で出してください。
宛名の差し込みと同じ流れなので、年賀状の宛名印刷をしたことがあれば、そのまま延長で使えます。事務所の複合機で刷るなら、ここまでで完結します。
方法3 スクリプトを1本、書いておく
毎月くり返すなら、これが結局いちばん楽です。Pythonなら10行ほどで、CSVから何千件でも作れます。件数の上限も、外部にデータを渡す心配もありません。
| 準備 | pip install "qrcode[pil]" と打つだけです |
| 中身 | CSVの各行を読んで、URLからQRの画像を作り、ファイル名を付けて保存する。それだけです |
list.csv の1列目にファイル名、2列目にURLを入れておき、同じフォルダで実行すると qr フォルダに書き出されます。
import csv, os, qrcode
os.makedirs("qr", exist_ok=True)
with open("list.csv", encoding="utf-8-sig") as f:
for name, url in csv.reader(f):
img = qrcode.make(url, error_correction=qrcode.ERROR_CORRECT_Q)
img.save(f"qr/{name}.png")
Excelから書き出したCSVは先頭に見えない文字(BOM)が入ることがあるので、encoding="utf-8-sig" を付けてあります。ここを省くと1件目のファイル名が壊れます。
つまずきやすいところ
| 本番の紙で、 1枚だけ試し刷りする | 画面では読めても、紙質・インクの乗り・大きさで読めなくなることがあります。とくに小さく載せたときと、色を薄くしたとき。本番と同じ紙で1枚刷って、実際にスマホで読んでください |
| URLは短くしておく | 長いURLほど模様が細かくなり、小さく印刷したときに読めなくなります。長いパラメータを付けたい場合は、短い中継用のURLにしておくほうが安全です |
| 行き先は、後から 変えられるようにする | QRに最終的なURLを直接入れると、刷ったあとに行き先を変えられません。キャンペーンの終了、ページの移転、入力ミス。どれも刷り直しになります。中継するURLを挟んでおけば、後から差し替えられます |
| 短縮URLサービスに 頼りきらない | 行き先を変えられるのは便利ですが、そのサービスが終わると、配った紙のQRが全部死にます。長く使う紙に載せるなら、そこは考えておいたほうがいい部分です |
| QRに個人情報を 入れない | QRは誰でも読めます。氏名や電話番号をそのまま入れると、紙を拾った人に読まれます。意味を持たない番号やランダムな文字列にして、対応表は手元に置いてください |
作ったあとに、2つの壁があります
壁1 画像ができても、紙に貼り込む作業が残る
方法1で300件のPNGを手に入れても、それを300枚のチラシに1枚ずつ配置する作業は別です。手作業だと現実的ではありません。ここを飛ばせるのが方法2(Wordの差し込み印刷)で、印刷会社に頼む場合は「バリアブル印刷」という名前の仕事になります。バリアブル印刷とは何かに、仕組みと費用をまとめてあります。
壁2 誰が読んだかは、分からない
ここが見落とされがちです。1件ずつ違うQRを作っても、その1つ1つが読まれたかどうかは、どこにも記録されません。QRの中身はただのURLで、読まれた瞬間にスマホがそのページを開くだけだからです。手元には何も返ってきません。
「田中様のQRが昨日2回読まれた」を知るには、①どのQRが誰のものかの対応表を持っていて、②読み取りをいったん受け止めて記録し、③そのあと本来のページへ送る、という仕組みが別に必要になります。
私たちが作っているダレヨミは、その②と③をやる道具です。お預かりした印刷用のPDFに宛先ごとに違うQRを差し込んで、PDFのまま返します。受け取った方がQRを読むと、指定のページへ転送されると同時に、管理画面に「誰が・いつ・何回」が名前で残ります。料金はQR1件につき5円(税別)、初期費用も月額もありません。
ただし、画像ファイルとしてQRを配布するサービスではありません。印刷も発送もしませんし、Webサイトに貼るQRの一括作成にも向きません。紙に印刷して人に配る用途に絞った道具です。上の方法1〜3で足りるなら、そちらで十分です。
アンケートに使う場合の、フォームの作り方から集計までの手順はQRコードでアンケートを取る方法に書きました。