QRコードを一つひとつ手作業で作成するのは、とても手間がかかります。特に大量のデータがある場合、時間がかかりすぎて困ってしまうこともあるでしょう。Googleスプレッドシートには、IMAGE関数とQRコード生成APIを組み合わせることで、一括でQRコードを作成できる便利な方法があります。この記事では、その具体的な手順と注意点を詳しく解説します。
【要点】GoogleスプレッドシートでQRコードを一括生成する方法
- Google Charts APIのURL:
https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl={データ}の形式で、{データ}部分にQRコード化したい文字列を指定します。 - IMAGE関数で画像を表示:
=IMAGE("URL")を使って、生成したQRコード画像をセルに表示します。 - ARRAYFORMULAで一括適用:
=ARRAYFORMULA(IMAGE("https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl="&ENCODEURL(A2:A)))のように数式を入力すると、複数のデータを一度にQRコードに変換できます。
ADVERTISEMENT
QRコード生成APIとIMAGE関数の仕組み
QRコードを生成するためのAPIとして、Google Charts APIが広く利用されています。このAPIは、URLにパラメータを付与することで、任意のデータをQRコード画像として返してくれます。パラメータとしては、画像サイズ(chs)、コードの種類(cht)、データ(chl)などがあります。一方、GoogleスプレッドシートのIMAGE関数は、指定したURLの画像をセル内に表示する関数です。この二つを組み合わせることで、スプレッドシート上で動的にQRコードを生成できます。APIのURLをIMAGE関数に渡すだけで、簡単にQRコードを表示できるのです。
QRコードを一括生成する手順
1. QRコードにしたいデータを準備する
- データを入力する列を用意します
A列にQRコード化したいテキストやURLを入力してください。例えば、A2に「https://example.com」、A3に「商品コード123」などと入力します。
2. APIのURLを作成する
- QRコード生成用のURLを組み立てます
基本のURLはhttps://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=です。この後ろに、QRコード化したいデータをURLエンコードして追加します。URLエンコードにはENCODEURL関数を使います。 - 数式例を確認します
単一セルの場合、=IMAGE("https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl="&ENCODEURL(A2))と入力します。これでA2の内容がQRコードとして表示されます。
3. IMAGE関数でQRコードを表示する
- B2セルに上記の数式を入力します
B2に=IMAGE("https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl="&ENCODEURL(A2))と入力し、Enterキーを押します。すると、A2の内容に対応するQRコードが表示されます。 - サイズを変更する場合
画像サイズを変更したい場合は、URL内のchs=150x150の数値を変更します。例えばchs=200x200にすると、200ピクセル四方のQRコードになります。
4. ARRAYFORMULAで一括適用する
- ARRAYFORMULAを使って全データに一度に適用します
B列全体にQRコードを表示したい場合は、B2に=ARRAYFORMULA(IMAGE("https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl="&ENCODEURL(A2:A)))と入力します。ただし、この方法では空白セルにもQRコードが生成されてしまうため、IF関数で空白を除外することをおすすめします。 - 空白を除外する数式
=ARRAYFORMULA(IF(A2:A="","",IMAGE("https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl="&ENCODEURL(A2:A))))とします。これで、A列にデータがある行だけQRコードが表示されます。
5. QUERY関数と組み合わせて整形する(応用)
- 特定の条件で抽出したデータだけQRコード化する
例えば、C列にカテゴリがあり、「食品」だけをQRコードにしたい場合、QUERY関数でフィルタリングしてからIMAGE関数を適用します。=ARRAYFORMULA(IMAGE("https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl="&ENCODEURL(QUERY(A2:C,"select A where C = '食品'"))))のようにします。
QRコード生成時の注意点とよくあるトラブル
APIのリクエスト制限に注意する
Google Charts APIには1日あたりのリクエスト制限があります。無料枠は特に公表されていませんが、大量のQRコードを生成する場合は制限に引っかかる可能性があります。1セルごとに1リクエストが発生するため、数百行を超える大量データの場合は注意してください。代わりに、一度に生成する数を制限するか、別のQRコード生成API(例:qrcode.tec-it.comなど)を検討するのも一つの方法です。
画像のキャッシュが原因で更新されない
QRコードの元データを変更しても、画像がすぐに更新されない場合があります。これは、IMAGE関数が画像をキャッシュするためです。強制的に更新するには、セルの数式を再計算するか、URLにダミーのパラメータ(例:&cache=1234)を追加してキャッシュを回避します。ただし、ARRAYFORMULAを使っている場合は、シート全体の再計算を行う必要があります。
URLエンコードが必要な文字
QRコードに日本語や特殊文字を含める場合、ENCODEURL関数で適切にエンコードしてください。エンコードしないと、APIが正しく解釈できず、エラーになることがあります。特にURLに「&」や「?」が含まれている場合は必ずエンコードします。
IMGAGE関数の表示が小さい場合
IMAGE関数で表示される画像は、セルのサイズに合わせて自動で縮小されます。QRコードが小さすぎて読み取りにくい場合は、セルの行の高さと列の幅を調整してください。また、URLのchsパラメータで画像サイズを大きくすることも有効です。
ADVERTISEMENT
主なQRコード生成方法の比較
| 方法 | メリット | デメリット |
|---|---|---|
| Google Charts API + IMAGE | 無料で使える。スプレッドシートだけで完結。コード不要 | リクエスト制限。画像がキャッシュされやすい。インターネット接続必須 |
| 専用アドオン(例:QRコード生成) | 簡単操作。画像を直接埋め込める。制限が緩いことが多い | 有料の場合がある。インストールが必要。権限付与が必要 |
| Apps Script + 外部API | 柔軟な制御。大量データに対応可能。オフラインでも使える(事前生成) | スクリプトの知識が必要。APIキーが必要な場合がある。更新に手間 |
まとめ
GoogleスプレッドシートでQRコードを一括生成するには、IMAGE関数とGoogle Charts APIを組み合わせる方法が最も手軽です。数式をコピーするだけで、大量のデータをQRコード化できます。注意点として、APIのリクエスト制限や画像キャッシュに気をつけてください。応用として、QUERY関数で条件を絞ったり、ENCODEURLで日本語を扱ったりすることもできます。まずは少ないデータで試し、問題がないことを確認してから本番データに適用してみてください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
