ADVERTISEMENT

【Googleスプレッドシート】QRコード生成APIで一括QR作成!IMAGE関数とAPIの組合せ

【Googleスプレッドシート】QRコード生成APIで一括QR作成!IMAGE関数とAPIの組合せ
🛡️ 超解決

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コードにしたいデータを準備する

  1. データを入力する列を用意します
    A列にQRコード化したいテキストやURLを入力してください。例えば、A2に「https://example.com」、A3に「商品コード123」などと入力します。

2. APIのURLを作成する

  1. QRコード生成用のURLを組み立てます
    基本のURLは https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl= です。この後ろに、QRコード化したいデータをURLエンコードして追加します。URLエンコードにはENCODEURL関数を使います。
  2. 数式例を確認します
    単一セルの場合、=IMAGE("https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl="&ENCODEURL(A2)) と入力します。これでA2の内容がQRコードとして表示されます。

3. IMAGE関数でQRコードを表示する

  1. B2セルに上記の数式を入力します
    B2に =IMAGE("https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl="&ENCODEURL(A2)) と入力し、Enterキーを押します。すると、A2の内容に対応するQRコードが表示されます。
  2. サイズを変更する場合
    画像サイズを変更したい場合は、URL内の chs=150x150 の数値を変更します。例えば chs=200x200 にすると、200ピクセル四方のQRコードになります。

4. ARRAYFORMULAで一括適用する

  1. ARRAYFORMULAを使って全データに一度に適用します
    B列全体にQRコードを表示したい場合は、B2に =ARRAYFORMULA(IMAGE("https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl="&ENCODEURL(A2:A))) と入力します。ただし、この方法では空白セルにもQRコードが生成されてしまうため、IF関数で空白を除外することをおすすめします。
  2. 空白を除外する数式
    =ARRAYFORMULA(IF(A2:A="","",IMAGE("https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl="&ENCODEURL(A2:A)))) とします。これで、A列にデータがある行だけQRコードが表示されます。

5. QUERY関数と組み合わせて整形する(応用)

  1. 特定の条件で抽出したデータだけ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

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。